1. 程式人生 > 其它 >nginx 配置詳解

nginx 配置詳解

高效能的http服務代理伺服器和反向代理伺服器,能支援50000個併發連線數

正向代理

明確買家是誰,讓代理人去聯絡目標

例如區域網內的客戶端想要訪問區域網外的internet,則需要代理伺服器來訪問,這種代理就是正向代理

反向代理

客戶端不需要任何配置就可以訪問,只需要將請求傳送到代理伺服器,有代理伺服器去選擇目標伺服器在返回給客戶端

負載均衡

將請求分發到不同伺服器、負載分發到不同伺服器,就是負載均衡

訪問一個ip預設是80nginxtomcat8080

動靜分離

為了加快網站的解析速度、將動態和靜態頁面有不同伺服器來解析,降低原來單個伺服器的壓力

安裝

進入壓縮目錄執行

./configure

執行make&&make install (編譯安裝)

安裝完成後多一個local/nginx nginxsbin啟動指令碼

./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

/local/nginx/sbin

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)

注意:開放埠 909180818080firewall

/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_hashfair(第三方)

輪詢:伺服器如果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.131nginx

這兩臺都要安裝nignxkeepalived

Yum -y install keepalived

安裝好之後 修改/etc/keepalived/keepalived.conf 檔案

分別啟動nignxkeepalived

./nginx systemctl start keepalived.service

補充:

關閉nginx服務

1kill`cat /usr/local/nginx/logs/nginx.pid` //檔案中有個pid

2nginx-s reload //過載

Session共享:

無論登入那一臺ipsession是一致的

1記憶體資料庫(memcache)

1 修改伺服器和資料庫的關聯關係