
如果我問了一個愚蠢的問題,請原諒我,但我正在建立一個伺服器,我將在其中使用 Nginx Docker 託管多個 Flask 網站 Docker 容器。我現在的問題是:是擁有一個主 nginx docker 容器,然後在其上託管我的所有網站 Docker 容器,還是為每個具有 docker compose 的應用程式擁有一個 Nginx docker 容器更好?
我想知道就資源處理和效率而言,哪一個比較好?
@Jacob 按照你的回答,我正在嘗試設定這樣的東西
docker-compose.yml:
version: "3.8"
services:
portfolix:
container_name: portfolix
image: mervin16/portfolix:dev
env_file:
- config_local.env
expose:
- 8086
restart: always
networks:
- sky_net
mes:
container_name: mes
image: mervin16/mes:dev
networks:
- sky_net
expose:
- 8085
restart: always
nginx:
build: ./nginx
container_name: nginx
ports:
- "8085:85"
- "8086:86"
restart: always
networks:
- sky_net
networks:
sky_net:
name: sky_network
driver: bridge
現在每個網站都可以在 localhost:8085 和 localhost:8086 上使用
然後,我在 Nginx 上使用反向代理(不是 docker,而是安裝在我的伺服器上)將流量重定向到我的網域:
server {
server_name mes.th3pl4gu3.com;
location / {
access_log /var/log/nginx/mes/access_mes.log;
error_log /var/log/nginx/mes/error_mes.log;
proxy_pass http://localhost:8081;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mes.th3pl4gu3.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mes.th3pl4gu3.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = mes.th3pl4gu3.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name mes.th3pl4gu3.com;
return 404; # managed by Certbot
}