我有一台运行 ssl (certbot) nginx 的服务器,并将所有流量指向我的 nginx-proxy 正在运行的端口 5555。我试图让它将我的所有流量路由到适当的服务。
这是我的 docker-compose 设置:
nginx-proxy:
container_name: nginx-proxy
image: jwilder/nginx-proxy
ports:
- '5555:80'
networks:
app_net:
ipv4_address: 172.26.111.111 (from subnet 0/24)
environment:
- VIRTUAL_PORT=5555
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx/prod/proxy.conf:/etc/nginx/conf.d/proxy.conf:ro
text-rewriter-service:
container_name: text-rewriter-service
build:
context: ./text-rewriter-service
ports:
- '8001:8001'
networks:
app_net:
ipv4_address: 172.26.111.13
environment:
- APP_ENV=prod
- NODE_ENV=production
- PORT=8001
还有我的 nginx proxy.conf 文件
server {
server_name localhost;
listen 80;
access_log /var/log/nginx/access.log;
listen [::]:80;
# text-rewriter-service
location ~* ^/graphql(/?)(.*)$ {
set $query $2;
proxy_pass http://172.26.111.13:8001$1$query$is_args$args;
}
}
服务器中的nginx conf
server {
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
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_pass http://0.0.0.0:5555;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
我试过(但失败了):
知识产权与
text-rewriter-service:8001
尝试将服务器更改为
example.com
尝试在应用程序中使用 VIRTUAL_HOST 和 VIRTUAL_PORT
尝试从 nginx 环境中删除 VIRTUAL_PORT
这是nginx 输出 www.example.com 172.26.111.1 - - [08/Dec/2018:01:18:19 +0000] "GET /graphql HTTP/1.0" 503 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
可能的解决方案我不完全了解如何开始工作:https ://github.com/jwilder/nginx-proxy/issues/582
我认为它在我需要更改的服务器 nginx proxy_header 上?