【发布时间】:2018-01-25 18:29:32
【问题描述】:
我正在使用 docker-compose 为我的应用配置一个 meteor 应用容器和一个 nginx 容器,这是我的 docker-compose 文件:
version: '2'
services:
webapp:
image: webapp.image.uri:latest
ports:
- "3000:3000"
environment:
- ROOT_URL=https://my.app.url
nginx:
image: nginx.image.uri:latest
volumes:
- certs:/etc/letsencrypt
- certs-data:/data/letsencrypt
ports:
- "80:80"
- "443:443"
我正在使用nginx 处理 HTTPS 请求。 我想要做的是配置nginx,以便当用户访问my.app.url 时,我可以让meteor 应用程序(端口3000)在端口443 上工作。
顺便说一句,这是我正在使用的 nginx 配置:
server {
listen 80;
listen [::]:80;
server_name my.app.url;
location / {
rewrite ^ https://$host$request_uri? permanent;
}
location ^~ /.well-known {
allow all;
root /data/letsencrypt/;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name my.app.url;
ssl on;
add_header Strict-Transport-Security "max-age=31536000" always;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDH+AESGCM:ECDH+AES256:ECDH+AES128:!ADH:!AECDH:!MD5;";
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4;
ssl_certificate /etc/letsencrypt/live/my.app.url/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my.app.url/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/my.app.url/chain.pem;
access_log /dev/stdout;
error_log /dev/stderr info;
# other configs
}
非常感谢!
【问题讨论】:
-
您正在寻找的是将 nginx 配置为反向代理:nginx.com/resources/admin-guide/reverse-proxy
标签: docker nginx portforwarding