nginx负载均衡案例,缓存知识----补充

负载均衡案例

在这里插入图片描述

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'great all on wordpress.* to 'wp'@'172.16.1.%' indentified by '1'' at line 1
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
| wulin              |
+--------------------+
5 rows in set (0.00 sec)MariaDB [(none)]> select user,host from mysql.user;
+-------+------------+
| user  | host       |
+-------+------------+
| root  | 127.0.0.1  |
| wulin | 172.16.1.% |
| root  | ::1        |
| root  | localhost  |
| wulin | localhost  |
+-------+------------+
5 rows in set (0.00 sec)

在这里插入图片描述
[root@web02 ~]#useradd -u 1999 -s /sbin/nologin -M www
在这里插入图片描述
[root@nfs01 ~]#yum install rpcbind nfs -y

[root@nfs01 ~]#systemctl enable rpcbind nfs
[root@nfs01 ~]#systemctl start rpcbind nfs
在这里插入图片描述
[root@web01 ~]#vim /etc/php-fpm.d/www.conf

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@web01 /etc/nginx/conf.d]#cat blog.wulinlinux.cn.conf
server {listen 80;server_name 192.168.28.7;root /app/code/blog;error_log /var/log/nginx/blog-error.log notice ;access_log /var/log/nginx/blog-access.log main;location / {index  index.php;}location ~* \.php$ {#chuandi phpfastcgi_pass  127.0.0.1:9000;fastcgi_index  index.php;fastcgi_buffering on;fastcgi_buffers 64 64k;#修改#fastcgi_param  SCRIPT_FILENAME /app/code/blog$fastcgi_scr#ipt_name;fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;include      fastcgi_params;}}
[root@web01 ~]#ll -d /app/code/blog/
drwxr-xr-x 5 nginx nginx 4096 528 15:16 /app/code/blog/
[root@web01 ~]#
[root@web01 ~]#chown -R www.www /app/code/blog/

在这里插入图片描述进入浏览器进行查看

在这里插入图片描述

挂载nfs

mkdir -p /app/code/blog/wp-content/uploads

如果报错是因为没有安装nfs-utils

yum install -y nfs-utils

记得永久挂载(开机时候先去开存储服务器)

nginx代理缓存机制

nginx的http_proxy模块,可以实现类似于Squid的缓存功能。

Nginx对客户已经访问过的内容在Nginx服务器本地建立副本,这样在一段时间内再次访问该数据,就不需要通过N ginx服务器再次向后端服务器发出请求,所以能够减少Nginx服务器与后端服务器之间的网络流量,减轻网络拥塞,同时还能减小数据传输延迟,提高用户访问速度。

同时,当后端服务器宕机时,Nginx服务器上的副本资源还能够回应相关的用户请求,这样能够提高后端服务器的鲁棒性(健壮性)。

对于缓存,会有下面的几个疑问:
-缓存文件放在哪儿?
如何指定那些请求被缓存?
缓存的有效期是多久?
对于某些请求,是否可以不走缓存?
解决以上问题,nginx的缓存也就基本配置完成了。

缓存文件放在哪?

proxy_cache_path:Nginx使用该参数指定缓存位置。
proxy_cache:该参数为之前指定的缓存名称。
proxy_cache_path:有两个必填参数,
第一个参数为缓存目录。
第二个参数keys_zone指定缓存名称和占用内存空间的大小。

// An highlighted block
user www-data;
worker_processes auto; #表示服务器有几个内核就起几个work
pid /run/nginx.pid;  #进程编号http {proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;upstream wulin.cn {server 127.0.0.1:8881; # 第一台服务器server 127.0.0.1:8882; # 第二台服务器server 127.0.0.1:8883; # 第三台服务器}server {listen 80; # 监听80端口proxy_cache one; # 指定缓存配置server_name test.wulin.cn; # 自己的域名或者IPlocation / {proxy_pass    http://test.wulin.cn;proxy_set_header Host  $host;proxy_set_header X-Real-IP $remote_addr;}}
}

注: 示例中的10m是对内存中缓存内容元数据信息大小的限制,如果想限制缓存总量大小,需要用max_size参数。

如何指定哪些请求被缓存?

Nginx 默认会缓存所有get 和 head方法的请求结果,缓存的key默认使用请求字符串。

自定义key
例如 proxy_cache_key
h o s t host hostrequest_uri$cookie_user”;

指定请求至少被发送了多少次以上时才缓存,可以防止低频请求被缓存。
例如 proxy_cache_min_uses 5;

指定哪些方法的请求被缓存
例如 proxy_cache_methods GET HEAD POST;

// An highlighted block
user www-data;
worker_processes auto; #表示服务器有几个内核就起几个work
pid /run/nginx.pid;  #进程编号http {proxy_cache_path /data/nginx/cache keys_zone=one:10m;upstream test.lazyfennec.cn {server 127.0.0.1:8881; # 第一台服务器server 127.0.0.1:8882; # 第二台服务器server 127.0.0.1:8883; # 第三台服务器}server {listen 80; # 监听80端口proxy_cache one; # 指定缓存配置server_name test.wukin.cn; # 自己的域名或者IPlocation / {proxy_pass    http://test.wulin.cn;proxy_set_header Host  $host;proxy_set_header X-Real-IP $remote_addr;proxy_cache_key $host$request_uri$cookie_user; # 指定缓存key}}
}

缓存有效期

默认情况下,缓存内容是长期存留的,除非缓存的总量超出限制。可以指定缓存有效时间,例如:

响应状态码为 200 302 时, 10分钟有效
proxy_cache_valid 200 302 10m;

对应任何状态码,5分钟有效
proxy_cache_valid any 5m;

// An highlighted block
user www-data;
worker_processes auto; #表示服务器有几个内核就起几个work
pid /run/nginx.pid;  #进程编号http {proxy_cache_path /data/nginx/cache keys_zone=one:10m;upstream test.wulin.cn {server 127.0.0.1:8881; # 第一台服务器server 127.0.0.1:8882; # 第二台服务器server 127.0.0.1:8883; # 第三台服务器}server {listen 80; # 监听80端口proxy_cache one; # 指定缓存配置server_name test.wulin.cn; # 自己的域名或者IPlocation / {proxy_pass    http://test.wulin.cn;proxy_set_header Host  $host;proxy_set_header X-Real-IP $remote_addr;proxy_cache_valid 200 302 10m;}}
}## 对于某些请求,是否可以不走缓存?
proxy_cache_bypass:该指令响应来自原始服务器而不是缓存。例如proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;如果任何一个参数值不为空,或者不等于0,nginx就不会查找缓存,直接进行代理转发。```javascript
// An highlighted block
user www-data;
worker_processes auto; #表示服务器有几个内核就起几个work
pid /run/nginx.pid;  #进程编号http {proxy_cache_path /data/nginx/cache keys_zone=one:10m;upstream test.wulin.cn {server 127.0.0.1:8881; # 第一台服务器server 127.0.0.1:8882; # 第二台服务器server 127.0.0.1:8883; # 第三台服务器}server {listen 80; # 监听80端口proxy_cache one; # 指定缓存配置server_name test.wulin.cn; # 自己的域名或者IPlocation / {proxy_pass    http://test.wulin.cn;proxy_set_header Host  $host;proxy_set_header X-Real-IP $remote_addr;proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; # 任意参数不为空则不走缓存}}
}

网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。

// An highlighted block
user www-data;
worker_processes auto; #表示服务器有几个内核就起几个work
pid /run/nginx.pid;  #进程编号events {use epoll;worker_connections 65535;
}http {proxy_cache_path /data/workspace/cache keys_zone=one:10m max_size=10g inactive=60m;proxy_cache_key "$scheme$request_method$request_uri";upstream origin.wulin.cn {server 127.0.0.1:9000;}server {listen 80; # 监听80端口proxy_cache one; # 指定缓存配置server_name test.wulin.cn; # 自己的域名或者IPlocation / {add_header X-proxy-Cache $upsteam_cache_status;include proxy_params;proxy_pass    http://origin.wulin.cn;}}server {listen 9000;root /data/workspace/nodejs/;index index.html index.htm;charset utf-8;include h5dp/basic.conf; # 引入外部的配置文件,即上边的图basic.conflocation / {try_files $uri $uri/ = 404;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/359311.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openstack-同一物理机中透传不同GPU时的nova配置记录

文章目录 前言一、不同加速卡的型号信息二、计算节点增加配置信息1.nova-compute服务的nova.conf 三、控制节点增加配置信息1.nova-conductor服务的nova.conf2.nova-scheduler服务的nova.conf3.nova-api服务的nova.conf 四、准备实例模版五、进行测试,创建虚拟机、检…

【操作系统】多进程拷贝|进程重载

🔥 博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于分享知识,欢迎大家共同学习和交流。 ​ 为什么要进行…

FEP分液漏斗Teflon耐酸碱四氟耐腐蚀耐高温250ml

FEP分液漏斗:也叫特氟龙分液漏斗、特氟龙梨型分液漏斗等。广泛应用于痕量分析、超痕量分析、ICP-MS分析、同位素分析等实验。 规格参考:125ml、250ml、500ml、1000ml 其主要特性有: 1.内壁对溶剂无粘贴性和吸附,可完全排空&…

Springboot 权限认证框架 -- SA-Token 简介(一)

引言 现今的软件开发中,权限认证与访问控制是每一个应用都必不可少的功能。SA-Token是一个简单、安全、易用的权限认证框架,它主要解决登录认证、权限认证、Session会话、单点登录等功能。SA-Token以其轻量级、零学习成本的特点,迅速赢得了开…

无重复字符串的排列组合

题目链接 无重复字符串的排列组合 题目描述 注意点 字符都是英文字母字符串长度在[1, 9]之间字符串每个字符均不相同 解答思路 字符串中有n个字符,则其排列组合的数量为n * (n - 1) * (n - 2) * … * 1可以深度优先遍历找到字符串的所有排列组合,且…

用Java获取键盘输入数的个十百位数

这段Java代码是一个简单的程序,用于接收用户输入的一个三位数,并将其分解为个位、十位和百位数字,然后分别打印出来。下面是代码的详细解释: 导入所需类库: import java.util.Scanner;:导入Scanner类,用于从…

【源码+文档+调试讲解】牙科就诊管理系统

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本牙科就诊管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

网络编程(七)网络超时检测

文章目录 一、概念二、实现方式(一) 使用select实现超时检测1. select函数补充说明:2. 使用示例3. 输出结果 (二) 使用setsockopt函数1. 函数定义2. 获取发送缓冲区和接收缓冲区的大小3. 端口复用4. 设置超时时间 &…

【C++】文件处理(IO流)

文章目录 C IO流1. C语言IO2. CIO2.1 C标准IO流2.2 C文件IO流2.3 C IO 文件常用函数总结表2.4 C stringstream C IO流 回顾一下,C语言中IO输入输出的 1. C语言IO C语言中常用的输入输出函数有如下几种:前者是格式化标准输入输出,后者是格式化…

探秘分布式一致性(共识)算法 :Raft

1.前言 Raft 算法是 Multi-Paxos 算法的一种,是一种强一致性算法。核心就是通过日志复制的方式达到整个集群的副本一致。 Raft 算法的三个核心概念就是 Leader 的选举、日志复制、节点变更。本文也将从这三个方面进行探讨。之后再聊聊 Raft 算法的几个应用场景。 2.…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-27含并行连结的网络GoogLeNet

27含并行连结的网络GoogLeNet import torch from torch import nn from torch.nn import functional as F import liliPytorch as lp import matplotlib.pyplot as pltclass Inception(nn.Module):# c1--c4是每条路径的输出通道数def __init__(self, in_channels, c1, c2, c3, …

免费内网穿透工具 ,快解析内网穿透解决方案

在IPv4公网IP严重不足的环境下,内网穿透技术越来越多的被人们所使用,使用内网穿透技术的好处有很多。 1:无需公网ip 物以稀为贵,由于可用的公网IP地址越来越少,价格也是水涨船高,一个固定公网IP一年的成本…

C++ 矩阵的最小路径和解法

描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。 数据范围: 1≤𝑛,𝑚≤5001≤n,m≤500,矩阵中任意值都满足 0≤𝑎𝑖,𝑗≤1000≤ai,j​≤100 要求…

基于豆瓣电影TOP250的可视化设计

本文要完成的目的,实现豆瓣电影TOP250的可视化 思路 讲解思路,采用倒推的方式, 首先确定可视化图表,也就是最终的效果。这样就能确定需要那些基础数据根据需要的数据进行按需爬取存储。 本篇文章完成前两步。可视化图表设计 和 …

搜维尔科技:「案例」NBA新科冠军与Xsens运动捕捉的缘分

北京时间昨日,凯尔特人在主场106比88击败独行侠,以总比分4比1获胜,夺得队史第18冠,超越湖人队(17冠)成为历史上夺冠次数最多的球队。凯尔特人队上一次夺冠还是在2007-2008赛季。 凯尔特人队主力Jayson Tat…

采用C#+uni-app 公众号预约挂号系统源码 医院公众号1分钟搞定网上“挂缴查”攻略!

采用C#uni-app 公众号预约挂号系统源码 医院公众号1分钟搞定网上“挂缴查”攻略! 医院就诊人数持续增多,为保障就诊人员安全便捷就医,减少排队等候时间,进一步提升就医体验,医院微信公众号上线缴费、查询等功能。就诊人…

Python+Pytest+Yaml+Request+Allure框架源代码之(一)common公共方法封装

common模块: get_path.py:获取路径方法 # -*- coding: UTF-8 -*- import os# 项目根目录 BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# 配置文件目录 CONFIG_DIR os.path.join(BASE_DIR,config)# 测试用例文件目录 TESTCA…

高速缓存存储器(Chche)

为了解决CPU和主存之间速度不匹配的问题,计算机系统中引入了高速缓存(Chche)的概念。 基本想法:使用速度更快但容量更小、价格更高的SRAM制作一个缓冲存储器,用来存放经常用到的信息;这样一来,…

如何打包数据库文件

使用 mysqldump 命令: mysqldump -u username -p database_name > output_file.sql username 是数据库的用户名。database_name 是要导出的数据库名称。output_file.sql 是导出的 SQL 文件名,可以自定义。 示例: mysqldump -u root -p…

Python-正则表达式

目录 一、打开正则表达式 二、正则表达式的使用 1、限定符 (1)x*:*表示它前面的字符y 可以有0个或多个; (2)x:表示它前面的字符可以出现一次以上;(只可以匹配多次&…