今日内容:nginx调度器、nginx优化
一、nginx反向代理
1.环境准备:proxy:192.168.99.5 192.168.88.5 web1 192.168.99.100 web2 192.168.99.200
2.nginx反向代理:第七层代理,代理http
3.部署
1)web集群部署httpd
yum -y install httpd echo web1 > /var/www/html/index.html echo web2 > /var/www/html/index.html systemctl start httpd
2)配置proxy
vim conf/nginx.conf http{ upstream webs { server 192.168.99.100:80; server 192.168.99.200:80; } server { ... location / { proxy_pass http://webs; } } } sbin/nginx -s reload 使用curl 192.168.99.5访问会出现轮询
3.反向代理集群池的属性
1)健康检查
upstream webs { server 192.168.99.100:80 max_fails=2 fail_timeout=30; server 192.168.99.100:80; } #关闭web1,此时转向web2提供服务,立即打开web1也不行,因为要等
2)权重
upstream webs { server 192.168.99.100:80 weight=2; server 192.168.99.200:80; }
3)相同客户端访问相同服务器
upstream webs { ip_hash; server 192.168.99.100:80; server 192.168.99.200:80; } 适用于公司规模较小的
4)暂时将服务器不参加集群活动
upstream webs { server 192.168.99.100:80 down; server 192.168.99.200:80; }
二、nginx的tcp与udp调度器
1.第四层代理
2.配置,安装nginx的时候装--with-stream
3.配置
1)安装nginx
killall nginx rm -rf /usr/local/nginx cd ~/lnmp_soft/nginx-1.22.1 ./configure --with-stream && make make && install cd /usr/local/nginx
2)更改配置
vim conf/ngnix.conf stream { upstream backend { server 192.168.99.100:22; server 192.168.99.200:22; } server { listen 12345; proxy_pass backend; } }
3)访问:curl 192.168.99.5 -p 12345
三、nginx常见问题的处理
1.常见的错误码处理
1)常见的错误
200 正常 301 永久重定向 302 临时重定向 400 请求语法错误 401 认证错误 403 请求被拒绝 404 请求资源不存在 414 请求uri太长
500 服务器内部错误 501 代理服务器无法获取下一服务器的正常应答
2)更改错误显示内容
vim conf/nginx.conf error_page 404 /error.html echo error > html/error.html sbin/nginx -s reload 客户端访问192.168.99.5:test(不存在)显示error
2.查看服务器状态
1)安装nginx时安装--with-http_stub_status_module
cd ~/lnmp_soft/nginx-1.22.1 ./configure --with-http_stub_status_module make && make install cd /usr/local/nginx
2)配置
vim conf/nginx.conf http{ ... location /status { stub_status on; } }
3)访问192.168.99.5/status
active connections :当前连接数量
server accepts handlers requires
reading writing waiting
3.更改服务器的并发量
1)ab访问
yum -y install httpd-tools ab -c2000 -n2000 http://192.168.99.5/ #失败
2)配置
ulimit -n #查看当前的并发量 vim conf/nginx.conf worker_prosses 2; worker_connections 5000; sbin/nginx -s reload ulimit -n 100000 # 临时设置服务器的最大并发量 vim /etc/security/limits.conf * soft nofile 10000 * hard nofile 10000 用户/组 软硬件限制 限制的项目 限制的数目
3)访问
4.请求头太长无法访问
1)运行脚本生成超长url
vim buffer.sh url=http://192.168.99.5/index.html? for i in {1..5000} do url=${url}v$i=$i done curl $url chmod +x buffer.sh # 显示414
2)配置
vim conf/nginx.conf http{ client_header_buffer_size 200K; # 默认时1k large_client_head_buffers 4 200K; } sbin/nginx -s reload
5.处理客户端缓存数据
1)使用浏览器访问about:catch
2)修改配置文件
vim conf/nginx.conf server { ... } location ~* \.(jpg|mp3|xml) { expires 30d; } sbin/nginx -s reload
3)浏览器访问查看