docker部署nginx主备模式
时间: 2023-09-15 14:22:12 浏览: 49
好的,关于docker部署nginx主备模式,你可以先创建两个nginx容器,一个作为主节点,一个作为备节点。在主节点上配置nginx,将相应的配置文件映射到容器内部。在备节点上同样安装nginx,并且将其配置成与主节点一致的nginx配置文件。然后,在主节点上安装keepalived并将其配置成主节点,同时在备节点上安装keepalived并将其配置成备节点。这样,在主节点发生故障时,备节点能够自动接管服务并保证服务的高可用性。
相关问题
docker部署nginx容器命令
1. 拉取nginx镜像:`docker pull nginx`
2. 创建并启动nginx容器:`docker run --name my-nginx -p 80:80 -d nginx`
其中,`my-nginx`为容器名,`-p`指定容器的80端口映射到主机的80端口,`-d`表示以后台模式运行容器。
3. 检查nginx容器是否运行:`docker ps`
如果容器状态为`Up`,则表示容器已成功部署。可以通过`http://localhost`访问nginx默认页面。
docker nginx 部署thinkphp6
要在Docker中部署ThinkPHP6,需要先搭建Nginx+PHP环境,然后拉取webdevops/php-nginx镜像并创建项目目录和配置文件。接着,将TP6的代码放到/app/tp6目录下,然后在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式。最后,创建容器并将目录映射到容器中即可。
具体步骤如下:
1. 搭建Nginx+PHP环境并拉取webdevops/php-nginx镜像:
```
# 拉取 PHP+Nginx 镜像
docker pull webdevops/php-nginx
# 创建项目目录和配置文件
cd ~/wang
mkdir app nginx
vim ~/wang/nginx/vhost.conf
```
2. 将TP6的代码放到/app/tp6目录下:
```
cp -r /path/to/tp6 /app/
```
3. 在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式:
```
server {
listen 80 default_server;
server_name _ *.vm docker;
# 指定访问路径到TP6的public目录
root "/app/tp6/public";
index index.php;
# 隐藏 index.php 以及使得Nginx支持pathinfo模式
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
}
include /opt/docker/etc/nginx/vhost.common.d/*.conf;
}
# SSL
server {
listen 443 default_server;
server_name _ *.vm docker;
root "/app";
index index.php;
include /opt/docker/etc/nginx/vhost.common.d/*.conf;
include /opt/docker/etc/nginx/vhost.ssl.conf;
}
```
4. 创建容器并将目录映射到容器中:
```
docker run --name nginx-php -p 8080:80 \
-v ~/wang/nginx/vhost.conf:/opt/docker/etc/nginx/vhost.conf \
-v ~/wang/app:/app \
-d webdevops/php-nginx
```