Tôi đã xem xét Docker và cách tôi có thể lưu trữ nhiều trang web trên một máy chủ "cách Docker". Theo tôi hiểu, lý tưởng là mọi thứ nên chạy các thùng chứa riêng và không nên chia sẻ các thùng chứa này.Kiến trúc Docker để lưu trữ một trang web PHP
Câu hỏi của tôi là liệu tổng quan bên dưới có phải là thiết lập vùng chứa hợp lệ với các yêu cầu đến một proxy đảo ngược duy nhất chuyển tiếp các yêu cầu đến máy chủ web underlaying để xử lý các yêu cầu thực tế hay không.
Ngoài ra, trong ba trường hợp bên dưới, tôi đã nêu chi tiết các cách khác nhau bao gồm tệp nguồn cho ứng dụng và muốn biết cái nào trong số ba là phổ biến nhất/tốt nhất để sử dụng.
Mong muốn của tôi là có thể chạy các trang web khác nhau trên một máy chủ duy nhất trong Docker. Các trang web có thể có các yêu cầu khác nhau như được minh họa bằng các phiên bản PHP-FPM khác nhau trong biểu đồ. Việc triển khai các trang web chính nó là một chút không rõ ràng với tôi như tôi không chắc chắn liệu tôi nên bao gồm các tập tin nguồn với nginx/PHP-FPM hoặc triển khai nó một cách riêng biệt.
thiết lập hiện tại của tôi là như sau:
Docker-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;
}
}
Điều này không được minh họa bằng tổng quan ở trên, nhưng tình hình trong tổng quan là tình huống có vẻ là tình huống lý tưởng đối với tôi.
Tôi làm cách nào để thiết lập điều này với proxy ngược và các vùng chứa PHP-FPM khác nhau, và làm cách nào để triển khai các trang web của tôi và các cập nhật tiếp theo?
Bất kỳ đầu vào nào về điều này sẽ được đánh giá rất nhiều!
Tôi nghĩ rằng "dinghy" là proxy ngược có thể hữu ích cho điều này –