架构师的成长之路初片~Nginx~集群篇~下篇
nginx组件集群:
环境链接上篇:https://www.cnblogs.com/ahaocloud/p/14493878.html
再http{内添加以下集群}
####################创建集群在 server 的 外头, 调用在 location 里面
1:创建集群
upstream web {
server ip;
server ip;
server ip;
}
2:调用集群
在location里添加执行命令(生效命令)
proxy_pass http://web;
重新加载nginx,会看到不同的页面
集群的优化:初级
1)任务量的分配 | weight=2 |
2)健康检查 | max_fails= |
3)相同客户机访问相同服务器 | ip_hash |
4)添加down标记 | down |
集群的优化:初级例子:
1:server 192.168.2.100:80 max_fails=2 fail_timeout=30; | 检查两次如果失败,则认为集群中的主机故障,之后等待30秒后,再次检测。 |
2:server 192.168.2.200:80 weight=2; | 设置权重,值越大,分配的工作量越多 |
3: upstream web{ ip_hash; server 192.168.2.100:80; } |
相同客户端访问相同的服务器,让一个客户机访问集群时,锁定一个后台服务器,避免重复登陆问题。 |
4: server 192.168.2.100:80 down; |
加down标记,使集群服务器暂时不参加任务轮询 |
二:重新编译nginx创建新环境
1:在编译时添加2个模块:
--with-stream //创建非网站业务的集群
--with-http_stub_status_module //可查看网站内部数据
2:创建集群(因为是非网站集群,所以必须在http之外创建。建议在16行上创建)
stream {
upstream backend{
server 192.168.2.100:22;
server 192.168.2.200:22;
}
server {
listen 6666; //监听端口
proxy_pass backend; //调用集群
}
}
验证: ssh 192.168.2.5 -p 6666 //nginxIP -p 指定端口
连续两次刷新页面,会看到不同的web主机。
三、nginx常见问题处理
1: 404报错
主配置文件 58~59 行附近
error_page 404 /test.jpg; //可把图片或者视频放在文件内即可,(名字必须相同)
2:status 页面
须装 --with-http_stub_status_module 模块
在http{} 内部添加一个新的 location{}。
location /status {
stub_status on;
}
测试:在网页中输入 ip/status 即可出来
active connections:
server accepts handled requests
reding:0 writing: | waiting:0
2.2 为了数据的外协,设置策略,只允许本机访问。
在新建的location内 添加
allow 本机ip; 或指定Ip
deny all;
例子:
location /status {
stub_status on;
allow 192.168.2.100;
deny all;
}
3.3:配置nginx的数据缓存,一台服务i其的相同数据可能会被同一个客户机反复访问,为了不重复让服务器给客户端传递相同数据,达到节约资源,节省时间的目的。
在http{}内找到location在 location 外部重新建立个新的 location。
location ~*\.(jpg|peng|txt|html)${
expres 30d; //在客户端缓存30天
}
4:优化nginx支持超长地址栏,默认情况下nginx无法支持地址栏,会报错 414
打开主配置文件,在默认的虚拟主机上方添加两行。
client_header_buffer_size 200k;
用户访问网站的头部信息,长度支持200K;
lorge_client_header_buffers 4 200k;
如果200k不够,再给4个200K.
5: 优化nginx并发
打开主配置文件:
worker-processes
开启nginx进程数量,通常与cpu核心数一致
worker_connections 1024;
每个nginx进程支持的并发访问量
压力测试:
包名: httpd-tools
命令: ab -c 200 -n 200 http://192.168.2.51
解释:模拟200个人,访问两百次
限制问题(数量):
由于机子的软硬件配置有默认的并发数,所以得修改
临时修改命令:
ulimit -Hn 10000
ulimit -Sn 10000
永久配置:/etc/security/limits.conf
在最后段落修改:53~54行
* soft nofile 10000
* hart nofile 10000
修改后重启服务器