Docker:Nginx反向代理在尝试在1个VPS中托管多个站点时返回错误504
我正在尝试在一个VPS中使用docker托管多个站点。我希望每个网站将有一个nginx服务器和一个php,所有的网站将有一个共同的mysql数据库 以下是容器的外观: mysql_容器(端口:3306) 主Web服务器(nginx容器)(端口80) 网站1(site.com) -nginx容器(81:80),php容器 网站2(site2.com) -另一个nginx容器(82:80),另一个php容器 main_server.confDocker:Nginx反向代理在尝试在1个VPS中托管多个站点时返回错误504,docker,nginx,reverse-proxy,Docker,Nginx,Reverse Proxy,我正在尝试在一个VPS中使用docker托管多个站点。我希望每个网站将有一个nginx服务器和一个php,所有的网站将有一个共同的mysql数据库 以下是容器的外观: mysql_容器(端口:3306) 主Web服务器(nginx容器)(端口80) 网站1(site.com) -nginx容器(81:80),php容器 网站2(site2.com) -另一个nginx容器(82:80),另一个php容器 main_server.conf server { listen
server {
listen 80;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
server_name site.com;
location / {
proxy_pass http://<site_container_ip_address>:82/;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
如果我尝试访问site.com:82,它可以正常工作。但是在site.com:80中,它返回错误504
我使用docker compose运行容器
version: '3.5'
services:
#PHP Service
app:
build:
context: .
dockerfile: Dockerfile
image: digitalocean.com/php
container_name: testapp
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: testapp
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- testapp-network
#Nginx Service
webserver:
image: nginx:alpine
container_name: testwebserver
restart: unless-stopped
tty: true
ports:
- "82:80"
volumes:
- ./:/var/www
- ./nginx/conf.d/:/etc/nginx/conf.d/
networks:
- testapp-network
#Docker Networks
networks:
testapp-network:
driver: bridge
name: testapp_network
如何开始堆叠?码头工人?如果有的话,你能提供文件吗?你的应用程序是否在端口9000上运行?我在你的
docker compose
中没有看到主nginx服务。您也可以提供吗?我看到的一个问题是,您的端口:
为webserver
配置要将nginx容器的80
端口映射到主机的82
。我想你可能想把这个读成“80:80”
。我最近在一组WordPress网站上做了类似的事情。如果有帮助的话,请随意探索:大家好,谢谢你们的回复。我只是通过删除代理过程中的端口来解决这个问题。proxy_pass http://,只是容器的ip地址。非常感谢您的帮助。您是如何开始工作的?码头工人?如果有的话,你能提供文件吗?你的应用程序是否在端口9000上运行?我在你的docker compose
中没有看到主nginx服务。您也可以提供吗?我看到的一个问题是,您的端口:
为webserver
配置要将nginx容器的80
端口映射到主机的82
。我想你可能想把这个读成“80:80”
。我最近在一组WordPress网站上做了类似的事情。如果有帮助的话,请随意探索:大家好,谢谢你们的回复。我只是通过删除代理过程中的端口来解决这个问题。proxy_pass http://,只是容器的ip地址。非常感谢你的帮助