如何使用nginx和docker-compose管理SSL



我有点被nginx的无数教程和配置淹没了,这些教程和配置不一定适合我的用例,所以我仍然很困惑。我不一定需要答案,但需要一个正确的方向,即如何使用我的设置来设置SSL。

我的docker compose中有4个服务:前端(react(、api(python/flask(、postgres和nginx。

这是我的nginx配置

upstream frontend {
server frontend:3333;
}
upstream api {
server api:8000;
}
server {
listen 80;
location / {
proxy_pass http://frontend;
}

location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://api;
}
}

我在docker的nginx服务组成

nginx:
depends_on:
- api
- frontend
restart: unless-stopped
build: ./nginx
volumes:
- ./
ports:
- "80:80"
- "443:443"

和Dockerfile

FROM nginx
COPY ./default.conf /etc/nginx/conf.d/default.conf

我只需要指出正确的步骤方向,以便使用此配置启动和运行SSL

您想使用Certbot创建(并续订(免费SSL证书,并相应地更新您的docker-compose

nginx:
image: nginx:latest
container_name: nginx
restart: always
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- /etc/letsencrypt:/etc/letsencrypt
ports:
- 80:80
- 443:443
networks:
- my_network

NGINX配置也需要修改以侦听443并配置SSL

listen              443 ssl http2;
server_name         myserver.com;
ssl_certificate     /etc/letsencrypt/live/myserver.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myserver.com/privkey.pem;
ssl_protocols TLSv1.2;

您可以选择从NGINX到Traefik查看NGINX配置的详细信息。

最新更新