nginx 配置詳解


高性能的http服務代理服務器和反向代理服務器,能支持50000個並發連接數

 

正向代理

 

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

 

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

 

 

反向代理

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

 

 

負載均衡

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

訪問一個ip 默認是80  nginx tomcat 8080 

 

 

動靜分離

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

 

 

安裝

進入壓縮目錄執行./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服務器與用戶的網絡連接數

比如 worker connections 1024 支持的最大連接數

第三部分: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)

 

注意:開放端口 9091 8081 8080 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

 

Upstream myserver{

   Server 192.168.17.129:8080;

   Server 192.168.17.129:8081;

}

 

 

策略:

輪詢(默認)、權重、ip_hashfair(第三方)

輪詢:服務器如果down掉,自動剔除

權重:weight 權重越高,分配的客戶端越多

Upstream myserver{

   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.129 192.168.17.131 nginx

  這兩台都要安裝nignxkeepalived

Yum -y install keepalived

 

安裝好之后 修改/etc/keepalived/keepalived.conf 文件

分別啟動nignxkeepalived

./nginx   systemctl start keepalived.service

 

 

補充:

關閉nginx服務

1  kill  `cat /usr/local/nginx/logs/nginx.pid`   //文件中有個pid

2 nginx -s reload  //重載

 

 

Session共享:

無論登錄那一台ipsession是一致的

1 內存數據庫(memcache)

1 修改服務器和數據庫的關聯關系

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM