我有点被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配置的详细信息。