docker swarm集群nginx+php+redis+mysql架构设计
以下是一个使用Docker Swarm创建nginx、PHP、Redis和MySQL集群的基本示例。
首先,创建一个名为 docker-compose.yml
的文件,内容如下:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
networks:
- webnet
php:
image: php:7.4-fpm
volumes:
- ./html:/var/www/html
networks:
- webnet
redis:
image: redis:alpine
ports:
- "6379:6379"
networks:
- webnet
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
networks:
- webnet
networks:
webnet:
volumes:
db_data:
然后,创建一个名为 nginx.conf
的文件,用于配置Nginx:
events {}
http {
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
最后,在包含这些文件的目录中运行以下命令来启动集群:
docker stack deploy -c docker-compose.yml mystack
这将创建一个名为 mystack
的Docker Swarm 服务栈,包括nginx、PHP、Redis和MySQL服务。确保你已经初始化了Docker Swarm并且有一个运行的Swarm集群。
评论已关闭