1. 程式人生 > >nginx之反向代理

nginx之反向代理

nss 多次 selinux proxy nginx反向代理 local firewall restart 壓力

nginx反向代理

nginx自動進行調度處理,自動進行健康檢查
1,實驗環境
準備三臺虛擬機:web1,web2,proxy
2,部署後端web1,web2
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd
[root@web1 ~]# firewall-cmd --set-default-zone=trusted    //為了方便搭建環境,設置防火墻為trusted

[root@web1 ~]# setenforce 0 //設置selinux為寬松模式

[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd
[root@web2 ~]# firewall-cmd --set-default-zone=trusted
[root@web2 ~]# setenforce 0

3,安裝配置nginx
1)安裝
[root@proxy ~]#yum -y install gcc openssl-devel pcre-devel zlib-devel
[root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
[root@proxy ~]# cd nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure \
--user=nginx \            //指定用戶
--group=nginx \ //指定組
--with-http_ssl_module \ //開啟SSL加密功能

--with-stream //開啟4層反向代理功能
2)配置
#vim /use/local/nginx/conf/nginx.conf
#使用upstream定義後端服務器集群,集群名稱任意(如webserver)
#使用server定義集群中的具體服務器和端口
upstream webserver {
#通過ip_hash設置調度規則為:相同客戶端訪問相同服務器
#配置upstream服務器集群的調度算法(防止重復登錄等)
     ip_hash;
server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=30;
server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=30;
server 192.168.2.222 down;
}
#ip_hash  對前三個8字節ip進行hash(md5sum加密),md5sum%2判斷是否是同一個ip地址
#weight設置服務器權重值,默認值為1,權重越大,該服務器承受的壓力越大
#max_fails設置最大失敗次數
#fail_timeout設置失敗超時時間,單位為秒
#down標記服務器已關機,不參與集群調度
.. ..
server {
listen 80;
server_name localhost;
location / {
#通過proxy_pass將用戶的請求轉發給webserver集群
proxy_pass http://webserver;
}
}

3)重啟nginx服務
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
#請先確保nginx是啟動狀態,否則運行該命令會報錯,報錯信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

4,測試
#firefox http://192.168.2.5 //使用該命令多次訪問查看效果面

nginx之反向代理