nginx 配置詳解
高效能的http服務代理伺服器和反向代理伺服器,能支援50000個併發連線數
正向代理
明確買家是誰,讓代理人去聯絡目標
例如區域網內的客戶端想要訪問區域網外的internet,則需要代理伺服器來訪問,這種代理就是正向代理
反向代理
客戶端不需要任何配置就可以訪問,只需要將請求傳送到代理伺服器,有代理伺服器去選擇目標伺服器在返回給客戶端
負載均衡
將請求分發到不同伺服器、負載分發到不同伺服器,就是負載均衡
訪問一個ip預設是80(nginx) tomcat是8080
動靜分離
為了加快網站的解析速度、將動態和靜態頁面有不同伺服器來解析,降低原來單個伺服器的壓力
安裝
進入壓縮目錄執行
執行make&&make install (編譯安裝)
安裝完成後多一個local/nginx 在nginx有sbin啟動指令碼
./nginx
訪問:http://ip:80->welcome to nginx
檢視開放的埠:firewall-cmd –list-all
新增埠:
Firewall-cmd –add-service=http -permanent
Sudo firewall-cmd –add-port=80/tcp –permanent
重啟防火牆:firewall-cmd-reload
Nginx 相關命令:
1進入到nginx的目錄 /usr
2檢視nginx的版本號:./nginx -v
3啟動nginx./nginx
4關閉nginx./nginx -s stop
5 重載入 ./nginx -s reload (重新載入配置檔案 nginx.conf)
Nginx的配置檔案組成
第一塊:全域性塊
從配置檔案開始到events塊之間的內容、主要設定一些影響nginx伺服器執行的配置指令,比如 worker_process 1; 值越大,可以支援的併發量也越多
第二部分:events
涉及的指令主要影響nginx伺服器與使用者的網路連線數
比如 workerconnections1024 支援的最大連線數
第三部分:http塊 (配置最多的地方)
http全域性塊
server塊
舉例:
瀏覽器訪問www.123.com
Nginx.conf 配置如下圖:
proxy_pass 反向代理的地址
例如:要實現
http://127.0.0.1:9091/edu 訪問tomcatl1(127.0.0.1:8080)
http://127.0.0.1:8080/vod 訪問tomcatl2(127.0.0.1:8081)
注意:開放埠 909180818080(firewall)
在 /usr/src/tomcat-xx/apache-tomcat-xx/webapps/ 建立 edu目錄 然後放一個a.html檔案
這時訪問 http://$Ip:8081/edu/a.html就能看到
這是nginx.conf 裡要改的內容
~/edu/ #正則表示式,請求路徑包含 edu時就會轉發到 xxx:8080
關於location的說明:
負載均衡:
訪問http://192.168.17.129/edu/a.html
Upstreammyserver{
Server 192.168.17.129:8080;
Server 192.168.17.129:8081;
}
策略:
輪詢(預設)、權重、ip_hash、fair(第三方)
輪詢:伺服器如果down掉,自動剔除
權重:weight權重越高,分配的客戶端越多
Upstreammyserver{
Server xxx weight=1;
Server xxx weight=10;
}
Ip_hash:每個訪客固定一個後端伺服器、可以解決session問題
Upstream myserver{
Ip_hash;
Server xxx;
Server xxx;
}
Fair:按後端伺服器響應時間來分配請求、響應時間斷的優先分配
Upstream myserverr{
Server xxxx;
Server xxxx;
Fair;
}
動靜分離:
Nginx處理靜態頁面、tomcat處理動態頁面:
一:把靜態檔案獨立成單獨的域名放在獨立的伺服器上
另一種就是動態和靜態檔案混合一起釋出,通過nginx來分開,通過location指定不同的字尾名實現不同的轉發請求、通過expires 引數設定可以使瀏覽器快取過期時間,減少與伺服器之間的請求和流量;設定一個過期時間,也就是無需去後端服務驗證,直接通過瀏覽器確認是否過期即可,不會殘生額外的流量
/data/image/01.jpg
/data/www/a.html
Autoinde on; //列出返回目錄
最終測試:
http://192.168.17.129/image/01.jpg
http://192.168.17.129/www/a.html
高可用叢集
需要兩臺伺服器 192.168.17.129192.168.17.131(nginx)
這兩臺都要安裝nignx、keepalived
Yum -y install keepalived
安裝好之後 修改/etc/keepalived/keepalived.conf 檔案
分別啟動nignx和keepalived
./nginx systemctl start keepalived.service
補充:
關閉nginx服務
1kill`cat /usr/local/nginx/logs/nginx.pid` //檔案中有個pid號
2nginx-s reload //過載
Session共享:
無論登入那一臺ip,session是一致的
1記憶體資料庫(memcache)
1 修改伺服器和資料庫的關聯關係