实现场景
nginx代理多个服务,并实现负载均衡
完整配置
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
upstream nginx-A{ #你需要修改这一行内容以此适配你的环境
ip_hash;
server 地址:端口 max_fails=3 fail_timeout=30;
}
upstream nginx-B{ #你需要修改这一行内容以此适配你的环境
ip_hash;
server 地址:端口 max_fails=3 fail_timeout=30;
}
server{
listen 8000; #监控端口
server_name 服务名; #你需要修改这一行内容以此适配你的环境
location / {
proxy_pass http://nginx-A;
}
location /app {
proxy_pass http://nginx-B/; #这是值得注意的一行
}
}
}
注:上文的配置是一个简单的基本配置,但多次尝试失败的原因是没注意到代理地址最后加 / 与不加 / 的区别。
区别可以参考:https://blog.csdn.net/weixin_43744059/article/details/103634545