【问题标题】:nginx redirect http to https in docker container connection refusednginx在docker容器连接中将http重定向到https被拒绝
【发布时间】:2022-01-20 04:15:48
【问题描述】:

我有一个从 HTTP 流量到 HTTPS 流量的有效重定向。该环境由 docker 容器中的烧瓶应用程序组成,该容器通过 NGINX docker 容器进行路由。下面是 nginx.conf 文件。运行docker-compose up 后,我可以激活容器。运行curl localhost 后,我得到了301 Moved Permanently。但是,在运行curl https://localhost 时,我得到了curl: (7) Failed to connect to localhost port 443: Connection refused。我检查了 macOS Big Sur 上的本地计算机网络设置,防火墙已关闭(应允许任何流量进入)。我不确定我还需要做什么才能使其正常工作。我还在 nginx 容器的 docker-compose 文件中公开了端口 443。任何建议都会有所帮助。

NGINX.conf

http {


upstream flask {
    server app:8000;
  }
  server {
    listen 80;
    server_name localhost;
    return 301 https://$server_name$request_uri;
  }

  server {
    listen 443 ssl;
    server_name localhost;

    ssl_certificate /etc/nginx/nginx/files/localhost.crt;
    ssl_certificate_key /etc/nginx/nginx/files/localhost.key;

    location / {
      proxy_pass http://flask;
      proxy_set_header Host "localhost";
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}

Docker 编写

version: "3"
services:
  app:
    container_name: app
    command: gunicorn --bind 0.0.0.0:8000 --workers 2 "app.server:app"
    volumes:
      - ./:/var/www
    build: app
    ports:
      - 8000:8000
    networks:
      MyNetwork:
        aliases:
          - flask

  nginx:
    container_name: nginx
    build: nginx
    volumes:
      - ./:/var/www
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 80:80
    expose:
      - "443"
    networks:
      - MyNetwork

networks:
  MyNetwork:

【问题讨论】:

  • 请在 Nginx docker-compose 中添加 443:443 并再次检查端口:- 80:80 - 443:443
  • 谢谢。这帮助我取得了进步,但现在在运行“curl -k localhost”时,我收到了来自服务器的空回复。
  • 检查来自 Nginx 容器内 HTTP 和 HTTPS 的回复

标签: docker nginx


【解决方案1】:

首先您应该像这样将端口443 添加到您的docker-compose

    ports:
      - 80:80
      - 443:443

那你应该音量/etc/nginx/nginx/files:

    volumes:
      - ./:/var/www
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/nginx/files:/etc/nginx/nginx/files

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 2022-01-20
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2017-02-25
    • 2020-05-02
    • 2014-09-23
    • 2021-06-27
    相关资源
    最近更新 更多