【问题标题】:Nginx docker - basic nginx.conf file to accept HTTPSNginx docker - 接受 HTTPS 的基本 nginx.conf 文件
【发布时间】:2021-03-09 15:02:30
【问题描述】:

我正在使用 docker/docker-compose 为应用程序构建开发环境。我正在尝试将应用程序设置为接受 HTTPS 协议(对于开发人员来说,使用 openssl 的自签名证书就足够了)但是遇到了问题。

我的docker-compose 文件(注意我正在为证书挂载卷以及下面共享的 nginx.conf 文件):


services:
  nginx:
    image: nginx:latest
    container_name: webserver
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - /homes/edmisml/nginx_docker_vol/nginx.conf:/etc/nginx/nginx.conf
      - /etc/ssl:/ssl/
  myservice:
    build: ./erschatbot_frontend
    restart: unless-stopped
    expose:
      - 8080

到目前为止,我非常简单的 nginx.conf 允许 HTTPS:


http {
  server {
    listen 80;
    server_name example.com;
    return 301 https://example.com$request_uri;
         }

   server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /ssl/private/nginx-selfsigned.key;

    access_log /var/log/nginx/data-access.log combined;

    location / {
       proxy_pass http://localhost:8080/;
       proxy_set_header X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-Host $host;
       }
    }
}

当我使用 docker-compose 启动容器时,出现以下错误

webserver     | 2021/03/09 14:53:27 [emerg] 1#1: unexpected "}" in /etc/nginx/nginx.conf:26
webserver     | nginx: [emerg] unexpected "}" in /etc/nginx/nginx.conf:26

所以我认为这是一个语法错误,但我没有看到具体问题。作为参考,我大致遵循指南here

我是一个完全的 nginx 菜鸟 - 有人可以帮助我吗?

更新:修复了第 25 行的愚蠢拼写错误(缺少分号),但在访问 https:<url> 时仍然收到错误。错误:

webserver     | 2021/03/09 15:31:44 [error] 32#32: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 10.75.226.54, server: example.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "example.com"

【问题讨论】:

  • 您在第 25 行缺少一个分号。proxy_set_header X-Forwarded-Host $host;

标签: docker nginx docker-compose nginx-config


【解决方案1】:

你有没有可能错过了这个?

http {
    server {
        listen 80;
        server_name example.com;
        return 301 https://example.com$request_uri;
    }

    server {
        listen 443 ssl;
        server_name example.com;

        ssl_certificate /ssl/certs/nginx-selfsigned.crt;
        ssl_certificate_key /ssl/private/nginx-selfsigned.key;

        access_log /var/log/nginx/data-access.log combined;

        location / {
       proxy_pass http://localhost:8080/;
       proxy_set_header X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-Host $host; // <--- here
       }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2019-12-04
    • 2017-05-28
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多