[英]Install wordpress in subdirectory with docker-compose and nginx
[英]nginx and wordpress different docker-compose files
我正在尝试将多个docker-compose文件与一个nginx docker-compose文件连接。
例如,此设置的效果很好(在运行之前,我已经创建了网络):
(在这里忍受我。我知道这个例子是多余的,因为我有两个nginx服务器)
#static_site/docker-compose.yml
version: '3'
services:
web:
image: nginx:stable-alpine
container_name: app_web_static
volumes:
- "./nginx.conf:/etc/nginx/conf.d/default.conf"
- "./web:/var/www/static_web"
ports:
- "8080:8080"
networks:
- test_network
#static_site/nginx.conf
server {
listen 8080;
location / {
root /var/www/static_web;
index index.html index.htm;
}
}
#nginx/docker-compose.yml
server {
listen 80;
server_name myapp.local;
#Docker DNS
resolver 127.0.0.11;
location / {
set $docker_host "app_web_static";
proxy_pass http://$docker_host:8080;
}
}
我运行容器,一切正常。 我的网站通过myapp.local代理
但。 当我将静态网站更改为这样的wordpress图片时:
#wordpress/docker-composer.yml
wordpress:
image: wordpress
container_name: app_web
links:
- db:mysql
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_PASSWORD: example
networks:
- test_network
- test_wordpress_db
db:
image: mysql:5.7
container_name: test.web.db
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- ./mysql/data:/var/lib/mysql
networks:
- test_wordpress_db
我再次运行容器(更新nginx .yml文件之后)。 我将请求登录到我的终端(nginx容器,这意味着该请求已处理),但出现错误: test.nginx | [error] 5#5: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 172.23.0.1, server: myapp.local, request: "GET / HTTP/1.1", upstream: "http://172.23.0.2:8080/", host: "myapp.local"
test.nginx | [error] 5#5: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 172.23.0.1, server: myapp.local, request: "GET / HTTP/1.1", upstream: "http://172.23.0.2:8080/", host: "myapp.local"
问题是当我从localhost:8080
访问它时,wordpress应用程序正在运行。
此配置中的wordpress应用是否存在问题? 它无法检测到我的主机或其他东西吗? 我怎么解决这个问题?
我想到了。
看来我必须为proxy_pass使用内部端口,而不是外部端口。 例如,对于wordpress docker-compose.yml
文件,我必须这样编写代理:
#nginx/docker-compose.yml
server {
listen 80;
server_name myapp.local;
#Docker DNS
resolver 127.0.0.11;
location / {
set $docker_host "app_web_static";
proxy_pass http://$docker_host:80; # here. the internal wordpress port
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.