總結篇——nginx代理服務器


一、反向代理

  一般上線的項目,出於安全性的考慮,是不允許外網直接訪問的,這時候nginx的反向代理功能就起到了關鍵作用。通常表現為,在生產服務器上部署項目和代理服務器,客戶端不能直接訪問生產服務器,需要通過nginx接收客戶端傳來的請求,然后轉發給生產服務器,再將服務器的回應發送給客戶端。這個閉合過程nginx充當一個中轉站,在此過程中,用戶不需要配置任何代理ip和端口,或者說客戶端根本就不知道自己訪問的是真實的服務器還是代理服務器,這樣能有效的保證內網的安全 。

  簡單配置如下:

server { listen 80; server_name 域名/ip; charset utf-8; location / { proxy_pass http://127.0.0.1:21010;
 proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

二、負載均衡

  當一台服務器滿足不了訪問量的時候,需要用其他的服務器進行分流,nginx可以很好的充當引流人,nginx負載均衡的核心配置如下:

upstream test { #服務器1 server ip+端口; #服務器2 server ip+端口; }

  負載均衡—權重(weight)

  指定輪詢幾率,weight和訪問比率成正比,用於后端服務器性能不均的情況。例如:

upstream test { #服務器1 server ip+端口   weight=3; #服務器2 server ip+端口   weight=7; }

  以上表現為,訪問服務器1的概率為30%,訪問服務器2的概率為70%

  負載均衡—ip綁定(ip_hash)

  多台服務器協同工作,最常出現的問題是session的保持,總不能訪問一次不同的服務器就重新登陸一次吧,ip_hash的出現即根據用戶請求的ip來尋找其訪問過的服務器,讓用戶一直訪問同一個服務器,示例如下:

upstream test { ip_hash; #服務器1 server ip+端口   weight=3; #服務器2 server ip+端口   weight=7; }

  負載均衡—優先分配(fair)

  按后端服務器的響應時間來分配請求,響應時間短的優先分配。nginx默認不支持fair算法,需要安裝upstream_fair模塊,示例如下:

upstream test { fair; ip_hash; #服務器1 server ip+端口   weight=3; #服務器2 server ip+端口   weight=7; }

三、HTTP服務器

  nginx的既可以做靜態代理服務器,也可以做動態代理服務器,靜態代理服務器配置如下:

 

 server{ listen 80; server_name ip/域名; client_max_body_size 1024M; location / { root /usr/local; index index.html; } }  

 

  如上可以表示為,發送http請求到nginx代理服務器,默認到真實服務器的/usr/local下的index.html靜態網頁,動態請求會通過nginx進行轉發,示例如下:

server { listen 80; server_name ip/域名; charset utf-8; location / { root /usr/local/efarm; index index.html; } location /api { proxy_pass http:127.0.0.1:8088 proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

  如上可以表示為,當發送http請求到nginx代理服務器時,默認到/usr/local/efarm下尋找index.html網頁,需要請求動態接口,則通過nginx轉發給真實服務器8088端口的啟動項目。

 

  


免責聲明!

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



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