wordpress docker镜像和nginx反向代理
我正在尝试使用docker compose来创建动态和快速的开发环境,并且我希望使用nginx来路由所有服务。这是我的配置: docker compose.ymlwordpress docker镜像和nginx反向代理,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,我正在尝试使用docker compose来创建动态和快速的开发环境,并且我希望使用nginx来路由所有服务。这是我的配置: docker compose.yml version: '3.1' services: nginx: image: nginx ports: - 80:80 volumes: - ./nginx:/etc/nginx/conf.d wordpress: image: wordpress r
version: '3.1'
services:
nginx:
image: nginx
ports:
- 80:80
volumes:
- ./nginx:/etc/nginx/conf.d
wordpress:
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- ./wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db:/var/lib/mysql
nginx conf.d
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://wordpress:80/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
但它不起作用,它总是试图从一个移动到另一个
我该怎么办?以下是在示例代码中要解决的主要问题:
- 默认情况下,
和nginx
Docker图像都在端口wordpress
上侦听。因此,您应该将80
映射到另一个。例如wordpress
8080
- 除非您为所有图像建立网络,否则它们将无法相互看到
- 更新
配置以删除nginx
的端口。在同一个网络中,他们只使用他们的主机名(也就是他们的图像名)来看到对方wordpress
- 必须更改声明
和wordpress
图像使用的卷的方式mysql
version: '3.1'
services:
nginx:
image: nginx
ports:
- 80:80
volumes:
- ./nginx:/etc/nginx/conf.d
networks:
- backend
wordpress:
image: wordpress
ports:
- 8080:80
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
networks:
- backend
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
networks:
- backend
volumes:
wordpress:
db:
networks:
backend:
driver: bridge
nginx.conf
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://wordpress/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
您可以在Docker Compose in中查看有关网络的更多详细信息。wordpress和nginx是否都监听:80端口还是仅仅是nginx?您能解释一下什么不起作用吗?日志怎么说?谢谢回复!当我访问时,我得到了=>502个坏网关感谢您的回复!使用此配置,当我访问
http://localhost
,我得到了=>502个坏网关好的,我在回答中更新了配置以修复您的问题