1、添加Nginx源
yum install epel-release
2、安装Nginx
yum install nginx
3、启动Nginx
systemctl start nginx //配置Firewall
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
常用操作:
//启动
systemctl start nginx
//停止
systemctl stop nginx
//重启
systemctl restart nginx
//查看运行状态
systemctl status nginx
开机启动
systemctl enable nginx
4、配置Nginx
//打开配置文件
vim /etc/nginx/nginx.conf //配置节点 地址结尾最好加上‘/’
location / {
proxy_pass http://localhost:5000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
} //保存退出
:wq //重启Nginx
systemctl restart nginx
负载配置
upstream webapp {
ip_hash;
server 127.0.0.1:8006 weight=10;
server 127.0.0.1:8007 down;
server 127.0.0.1:8006 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8007 backup;
} location / {
proxy_pass http://webapp/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
}
说明:
upstream分为以下几种:
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
参数:
down 表示负载过重或者不参与负载
weight 权重过大代表承担的负载就越大
backup 其它服务器时或down时才会请求backup服务器
max_fails 失败超过指定次数会暂停或请求转往其它服务器
fail_timeout 失败超过指定次数后暂停时间
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
两者区别:
X-Forwarded-For是用于记录代理信息的,每经过一级代理(匿名代理除外),代理服务器都会把这次请求的来源IP追加在X-Forwarded-For中,如: X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3 代表 请求由1.1.1.1发出,经过第一层2.2.2.2 转发,第二层是3.3.3.3 转发,而X-Real-IP,一般只记录真实发出请求的客户端IP,如果配置了X-Read-IP,将会是 X-Real-IP: 1.1.1.1 ,如果只有一层代理,这两个头的值一样。