Nginx ("engine x") 是一個高效能的HTTP和 反向 Proxy 伺服器,也是一個 IMAP/POP3/SMTP 伺服器。Nginx作為反向 Proxy伺服器,可以對Web伺服器提供加速,並且具有負載平衡的功能。nginx可以自動剔除停止服務的伺服器,保證web服務的正常訪問。
本例實現一個使用者訪問192.168.1.4,將其代理到192.168.1.2:80、192.168.1.3:80這兩台伺服器實現負載。
以下為設定檔 nginx.conf:
user www www;worker_processes 10;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;#最大檔案描述符worker_rlimit_nofile 51200;events {worker_connections 51200;}http {include conf/mime.types;default_type application/octet-stream;keepalive_timeout 120;tcp_nodelay on;#nginx的upstream預設是以輪詢的方式實現負載平衡,這種方式中,每個請求按時間順序逐一分配到不同的後端伺服器,#如果後端伺服器down掉,能自動剔除。另外一種方式是ip_hash:每個請求按訪問ip的hash結果分配,#這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。upstream webserver {server 192.168.1.2:80 weight=1;server 192.168.1.3:80 weight=1;}server{listen 80;server_name localhost;location / {#設定反向 Proxy的地址proxy_pass http://webserver;#設定主機頭和用戶端真真實位址,以便伺服器擷取用戶端真實IPproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}log_format localhost '$remote_addr - $remote_user [$time_local] $request ''"$status" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /data1/logs/www.log localhost ;}}
以上就是Nginx反向 Proxy和負載平衡實踐的相關教程,希望能協助到大家。