0

我有一台运行 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
}

我试过(但失败了):

  1. 知识产权与text-rewriter-service:8001

  2. 尝试将服务器更改为example.com

  3. 尝试在应用程序中使用 VIRTUAL_HOST 和 VIRTUAL_PORT

  4. 尝试从 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 上?

4

0 回答 0