我的工作是将HTTP流量重定向到HTTPS流量。该环境由正在通过NGINX停靠容器路由的坞容器中的一个烧瓶应用程序组成。下面是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大Sur上的本地计算机网络设置,防火墙被关闭(任何流量都应该允许进入)。我不知道我还需要做些什么才能让这件事奏效。我还在nginx容器的docker-组合文件中公开了端口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;
}
}
}码头组成
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:发布于 2021-12-17 08:50:16
首先,您应该将端口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/fileshttps://stackoverflow.com/questions/70389753
复制相似问题