upstream and porxy_pass ------------------------------------------------------------------- 1.Simple reverse proxy http: upstream bbs_server{ server 10.10.10.20; server 10.10.10.21; #check interval=3000 rise=2 fall=5 timeout=1000 type=http; } server: location / { proxy_pass http://bbs_server; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } -------------------------------------------------------------------- 2. Too based on domain names -------------------------------------------------------------------- http: upstream blog_server { #ip_hash; #server 10.10.10.20:8082 weight=5; #server 10.10.10.21:8082 weight=1; #check interval=3000 rise=2 fall=5 timeout=1000 type=http; server 10.10.10.20; server 10.10.10.21; } upstream bbs_server { #ip_hash; #server 10.10.10.20:8081 weight=5; #server 10.10.10.21:8081 weight=1; server 10.10.10.20; server 10.10.10.21; } upstream www_server { #ip_hash; #server 10.10.10.20:8080 weight=5; #server 10.10.10.21:8080 weight=1; server 10.10.10.20; server 10.10.10.21; } --------------------------------------------------- server { listen 80; server_name www.linyaohong.com linyaohong.com ; location / { proxy_pass http://www_server; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } } server { listen 80; server_name bbs.linyaohong.com ; location / { proxy_pass http://bbs_server; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } } ------------------------------------------------------------ 3. nginx_proxy Client agent is iphone or android ------------------------------------------------------------ http: upstream static_server { server 10.10.10.21; } upstream upload_server { server 10.10.10.20; } upstream default_server { server 10.10.10.21; } server { listen 80; server_name www.linyaohong.com linyaohong.com ; location / { if ($http_user_agent ~* "android") { proxy_pass http://static_server; } if ($http_user_agent ~* "iphone") { proxy_pass http://upload_server; } proxy_pass http://default_server; include proxy.conf; } } ------------------------------------------------------------ 4. nginx_proxy URI ------------------------------------------------------------ http: upstream static_server { server 10.10.10.20; } upstream upload_server { server 10.10.10.21; } upstream default_server { server 10.10.10.20; } server { listen 80; server_name www.linyaohong.com linyaohong.com ; location /static/ { proxy_pass http://static_server; } location /upload/ { proxy_pass http://upload_server; } location / { proxy_pass http://default_server; } include proxy.conf; } ------------------------------------------------------------ 5. nginx_proxy User-agent ------------------------------------------------------------ http: upstream static_server { server 10.10.10.21; } upstream upload_server { server 10.10.10.20; } upstream default_server { server 10.10.10.20; } server { listen 80; server_name www.linyaohong.com linyaohong.com ; location / { if ($http_user_agent ~* "Trident") { proxy_pass http://static_server; } if ($http_user_agent ~* "Firefox") { proxy_pass http://upload_server; } proxy_pass http://default_server; include proxy.conf; } } ------------------------------------------------------------ 5. proxy.conf ------------------------------------------------------------ proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; ------------------------------------------------------------ location / { proxy_pass http://127.0.0.1:1215; proxy_set_header HTTPS "on"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 60; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }