我一直在关注Docker以及如何在服务器上托管多个网站(“Docker方式”)。据我所知,理想情况下,一切都应该运行自己的容器,这些容器不应该共享。托管PHP网站的Docker体系结构
我的问题是下面的概述是否是一个有效的容器设置,请求会进入一个反向代理,将请求转发给底层的Web服务器以处理实际的请求。
另外,在下面的三种情况下,我详细介绍了包含应用程序源文件的不同方法,并且想知道哪三种最常用/最好使用。
我的愿望是能够在Docker中的单个服务器上运行不同的网站。这些网站可以有不同的要求,如图中不同的PHP-FPM版本所示。网站的部署本身对我来说有点不清楚,因为我不确定是否应该将源文件与nginx/PHP-FPM一起包含或单独部署。
我的当前设置如下:
搬运工-compose.yml
version: '2'
services:
nginx:
image: nginx:alpine
restart: always
ports:
- '80:80'
links:
- example_com
- example_org
- example_net
volumes:
- ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro
example_com:
image: php:7.0-fpm-alpine
restart: always
volumes:
- ./sites/example_com:/var/www/example_com:ro
example_org:
image: php:7.0-fpm-alpine
restart: always
volumes:
- ./sites/example_org:/var/www/example_org:ro
example_net:
image: php:7.0-fpm-alpine
restart: always
volumes:
- ./sites/example_net:/var/www/example_net
nginx的/ conf.d/default.conf
server {
listen 80;
server_name www.example.com example.com;
location ~ \.php$ {
fastcgi_pass example_com:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example_com$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name www.example.org example.org;
location ~ \.php$ {
fastcgi_pass example_org:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example_org$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name www.example.net example.net;
location ~ \.php$ {
fastcgi_pass example_net:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example_net$fastcgi_script_name;
include fastcgi_params;
}
}
这并非如上述概述所示,但概述中的情况对我来说似乎是理想情况。
如何设置反向代理和不同的PHP-FPM容器,以及如何部署我的网站及其后续更新?
对此的任何输入将不胜感激!
我认为“dinghy”是反向代理,可能对此很有用 –