【发布时间】:2020-03-07 05:29:12
【问题描述】:
我有 2 个网站实例在同一台服务器上运行,用于 docker 容器上的开发和登台环境。这些站点的源代码相同,但位于 2 个单独的文件夹中。 /dev 和 /uat 在同一台服务器上,可以通过单个域但不同的端口访问它们,即 dev.website.com:5000和 dev.website.com
我无权访问 DNS 也无法更改它,但我请求将域 uat.website.com 指向相同的 IP 地址,以便我可以删除该端口。这可以通过反向代理实现还是需要更改 DNS?
问题
开发 - dev.website.com:5000
uat - dev.website.com
我想要达到的目标
开发 - dev.website.com
uat - uat.website.com
docker-compose dev.yml
version: '3'
networks:
dev_network:
driver: bridge
services:
web_dev:
image: nginx:stable-alpine
container_name: web_dev
working_dir: /var/www
volumes:
- ./src:/var/www
- ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app_dev
ports:
- "5000:80"
networks:
- dev_network
app_dev:
image: php:7.2-fpm
container_name: app_dev
working_dir: /var/www
volumes:
- ./src:/var/www
ports:
- "9005:9000"
networks:
- dev_network
docker-compose uat.yml
version: '3'
networks:
uat_network:
driver: bridge
services:
web_uat:
image: nginx:stable-alpine
container_name: web_uat
working_dir: /var/www
volumes:
- ./src:/var/www
- ./nginx/default.uat.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app_uat
ports:
- "80:80"
networks:
- uat_network
app_uat:
image: php:7.2-fpm
container_name: app_uat
working_dir: /var/www
volumes:
- ./src:/var/www
ports:
- "9000:9000"
networks:
- uat_network
用于开发的 nginx 配置
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app_dev:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
uat 的 nginx 配置
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app_uat:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
【问题讨论】:
标签: docker nginx docker-compose reverse-proxy