docker Nginx PHP-FPM单机多站点布署的方法

2020-06-17 06:42:10易采站长站整理

网上尝试过各种方法,处理单机中单NGINX容器,单PHP-FPM容器布署多站点,均无法成功。

经过反思总结,目前共实施两种方法成功:

单Nginx,多PHP-FPM
单Nginx,单PHP-FPM

单Nginx,多PHP-FPM

docker-compose.yml


version: '2'

services:
nginx-1.15.1:
image: nginx:laster
ports:
- "80:80"
volumes:
- ./htdocs:/usr/local/nginx/html
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./etc/nginx/conf.d:/etc/nginx/conf.d
- ./log/nginx:/var/log/nginx
networks:
- leoedu-network
php-fpm-a:
image: php-fpm:laster
volumes:
- ./htdocs/a.com:/var/www/html
networks:
- leoedu-network
php-fpm-b:
image: php-fpm:laster
volumes:
- ./htdocs/b.com:/var/www/html
networks:
- leoedu-network

networks:
leoedu-network:
driver: bridge

nginx配置文件:


server {
listen 80;
charset utf-8;
server_name a.com;

root /usr/local/nginx/html/a.com;
index index.html index.htm index.php;

error_log /var/log/nginx/a.com-error.log;
access_log /var/log/nginx/a.com-access.log;

location ~ .php$ {
fastcgi_pass php-fpm-a:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

单Nginx,单PHP-FPM

docker-compose.yml


version: '2'

services:
nginx-1.15.1:
image: nginx:laster
ports:
- "80:80"
volumes:
- ./htdocs:/usr/local/nginx/html
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./etc/nginx/conf.d:/etc/nginx/conf.d
- ./log/nginx:/var/log/nginx
networks:
- leoedu-network
php-fpm-7.2.5:
image: php-fpm:laster
volumes:
- ./htdocs:/var/www/html
networks:
- leoedu-network
networks:
leoedu-network:
driver: bridge

NGINX配置关键点在于:


astcgi_param SCRIPT_FILENAME /var/www/html/nick.com/$fastcgi_script_name;

具体原因,回头有空补上,此篇纯做记录

您可能感兴趣的文章:WordPress中开启多站点支持及Nginx的重写规则配置Nginx 配置多站点vhost 的方法Nginx+Tomcat多站点部署的方法详解实现Nginx+Tomcat实现单IP、多域名、多站点的访问Nginx 的多站点配置方案Nginx 多站点配置实例详解详解Nginx配置多站点需要踩的坑详解阿里云nginx服务器多站点的配置nginx 负载均衡 多站点共享Sessionnginx 多站点配置方法集合Nginx环境下WordPress的多站点功能配置详解