这个负载均衡的配置其实和网上那些有一点区别,网上一般在lacation / 里做负载均衡,但是我们公司因为lacation / 里放置了其他东西,后端用其他的标记,如/s, 所以重点来了,负载均衡后,跳转到的接口也要有/s, nginx到其他server里还是会找/s 标记的location匹配。所以nginx的负载均衡只是跳转到了另一个你指定的ip和port,原来需要匹配的lacation标记,还是一样的要保持一致,不然就会出现404 找不到的错误。
三步!!!
以下是全部配置
upstream **3d{
server www.**3d.com:12334;
server www.**3d.com:12335;
}
server {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 200s;
send_timeout 200s;
#client_max_body_size 200m;
client_max_body_size 200M;
client_body_buffer_size 200M;
listen 10005 ;
listen [::]:10005 ;
#root /var/www/cnsj.com;
#index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 150s;
proxy_read_timeout 150s;
proxy_send_timeout 150s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 200s;
send_timeout 200s;
#client_max_body_size 200m;
client_max_body_size 200M;
client_body_buffer_size 200M;
listen 12233 ;
listen [::]:12233 ;
#root /var/www/cnsj.com;
#index index.html index.htm index.nginx-debian.html;
location / {
#proxy_pass http://127.0.0.1:12234;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 150s;
proxy_read_timeout 150s;
proxy_send_timeout 150s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
client_max_body_size 100M;
client_body_buffer_size 100M;
#add_header 'Access-Control-Allow-Origin' '*';
#add_header 'Access-Control-Allow-Credentials' 'true';
listen 8000 default_server;
listen [::]:8000 default_server;
#root /home/tanzhihao/html;
#index index.html index.htm index.nginx-debian.html;
location / {
root /home/**/html;
index index.html index.htm index.nginx-debian.html;
}
location /s {
proxy_set_header Host $host;
#proxy_set_header Host $host;
#proxy_set_header X-Real-Ip $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:5006/;
}
location /testcnsj {
root /var/www/**.com;
index index.html index.htm index.nginx-debian.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
client_max_body_size 100M;
client_body_buffer_size 100M;
#listen 80 ;
listen 443 ssl;
#listen [::]:80 default_server;
#listen [::]:80 default_server;
server_name www.**.com;
ssl_certificate "/etc/nginx/conf.d/certificate/5343856_www.**.com.pem";
ssl_certificate_key "/etc/nginx/conf.d/certificate/5343856_www.**.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#root /home/**/html;
#index index.html index.htm index.nginx-debian.html;
#add_header 'Access-Control-Allow-Origin' 'www.arteam3d.com';
#add_header 'Access-Control-Allow-Credentials' 'true';
#root /home/tanzhihao/html;
#index index.html index.htm index.nginx-debian.html;
location / {
root /home/**/html;
index index.html index.htm index.nginx-debian.html;
#add_header 'Access-Control-Allow-Origin' 'http://www.**.com/';
#add_header 'Access-Control-Allow-Credentials' 'true';
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $http_host;
#proxy_set_header X-Nginx-Proxy true;
#proxoy_pass http://127.0.0.1:8000/;
#proxy_pass http://arteam3d;
}
location /s/ {
#proxy_set_header Host $host;
#proxy_set_header Host $host;
#proxy_set_header X-Real-Ip $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
#proxy_pass http://127.0.0.1:5006/;
proxy_pass http://**;
}
location /d/ {
proxy_set_header Host $host;
#proxy_set_header Host $host;
#proxy_set_header X-Real-Ip $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:12235/;
#proxy_pass https://**;
}
location /socket.io/ {
#proxy_set_header Host $host;
#proxy_set_header X-Real-Ip $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://**:5005;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";