一千萬個為什麽

搜索

NGINX反向代理到dockerized nginx和ghost博客與ssl無法正常工作



所以我在幾個不同的雲虛擬機上設置了這個配置,並且沒有使用它作為wordpress docker容器或MEAN堆棧應用程序的反向代理的問題。但是現在,我正在嘗試在我的家庭服務器上使用一個dockerized ghost博客容器和一個帶有SSL的dockerized nginx實例(公開)但它沒有它。

我目前的設置是我家的服務器,我的路由器上有一個配置,它將80和443轉發到包含nginx的服務器,同一個服務器也包含docker容器。

我正在使用域名路由到正確的應用程序。我使用ansible來部署nginx配置,這是我的腳本。

- hosts: wphosts
  roles:
    - role: jdauphant.nginx
      nginx_configs:
        upgrade:
             - map $http_upgrade $connection_upgrade {
                  default update;
                   '' close;
                }

      nginx_http_params:
        - sendfile on
        - access_log /var/log/nginx/access.log
        - client_max_body_size 200M
      # The user to run nginx
      nginx_user: "www-data"
      nginx_official_repo: True
      keep_only_specified: True
      # A list of hashs that define the servers for nginx,
      # as with http parameters. Any valid server parameters
      # can be defined here.
      nginx_sites:
        default:
          - listen 80
          - listen [::]:80 default_server ipv6only=on
          - listen 443 ssl
          - server_name localhost
          - root "/usr/share/nginx/html"
          - index index.html index.htm
          - |
            location ~ /.well-known {
              allow all;
            }
          - location/{ try_files $uri $uri/ =404; }
        website1.com:
          - listen 80
          - listen *:443 ssl
          - server_name website1.com
          - ssl_certificate_key /etc/letsencrypt/live/website1.com/privkey.pem
          - ssl_certificate /etc/letsencrypt/live/website1.com/fullchain.pem
          - |
            location/{
                proxy_pass http://127.0.0.1:5598;
                proxy_set_header Host $host;
            }
        website2.com:
          - listen 80
          - listen *:443 ssl
          - server_name website2.com
          - ssl_certificate_key /etc/letsencrypt/live/website2.com/privkey.pem
          - ssl_certificate /etc/letsencrypt/live/website2.com/fullchain.pem
          - |
            location/{
                proxy_pass http://localhost:1495;
                proxy_set_header Host $host;
            }

docker命令如下:

docker run -d --name website1-com -p 5598:2368 -v /docker-volumes/website1.com/ghost-mount:/var/lib/ghost/content -e url=https://website1.com --restart=always ghost:1-alpine


docker run --name website2-com -p 1495:80 -v /docker-volumes/website2.com/nginx-html-mount:/usr/share/nginx/html:ro -d nginx

我已經在這上花了一天時間,所以只是尋找一些建議。使用此配置,我能夠在http上訪問website2,但不能訪問https。和website1甚至無法通過http訪問它不斷重新路由到https,這是行不通的。接受任何和所有幫助!謝謝!

轉載註明原文: NGINX反向代理到dockerized nginx和ghost博客與ssl無法正常工作

一共有 1 個回答:

@Tensibai就是這筆錢。默認站點重疊導致問題,刪除默認配置並僅保持其他站點工作。