我有一个在相同的docker集群中运行的API和Web应用程序。
1)最好有一个nginx容器负载平衡两个或有两个单独的nginx容器负载平衡每个分开?
2)如果前者,我试过这个:
server { listen 80; server_name xxy.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name xxy.com; location / { proxy_pass http://web_app:8000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 443 ssl; server_name yyyy.com; location / { proxy_pass http://api_backend:5000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
但是,我得到一个502 nginx的网关错误的API。
而后一种解决scheme,我不得不将其中一个API的端口更改为444,因为当我docker-compose up一个port 443 is already in use错误。
server { listen 444 ssl; server_name yyyy.com; location / { proxy_pass http://api_backend:5000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
任何想法或方法,我可以去解决这个问题有两个nginx进程在同一台服务器上?
注意:我的DNS被configuration为redirect到相同的IP地址。
我也尝试过这个无济于事。 还是像上面一样的错误。