【发布时间】:2017-12-29 13:14:41
【问题描述】:
目前我想设置一台服务器,它有一个 Docker WordPress 和 Nginx 作为前面的代理。我希望将来能够在这个 Nginx 代理后面拥有多个 WordPress、NodeJS、ROR 等。
当我尝试在端口 80 上连接到我的服务器时,我得到一个 403 禁止。
我能够构建 Docker WordPress 映像,并可以在远程 PC 上的端口 8080 上连接到它。
这是我的 Docker WordPress 的 compose.yml:
version: "3.1"
services:
my_wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_HOST: my_mysql_wordpress
my_mysql_wordpress:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
这是我尝试构建 Nginx 容器时遇到 403 禁止的部分。
Nginx Docker 文件:
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
Nginx compose.yml:
version: "2"
services:
web:
restart: always
image: nginx
ports:
- "80:80"
volumes:
- /path/in/vm/www:/usr/share/nginx/html
external_links:
- mywordpress_wordpress_1:mywordpress
networks:
default:
external:
name: mywordpress_default
Nginx nginx.conf:
http {
#...
upstream wordpress {
server mywordpress:8080;
}
#...
server {
listen 80;
server_name 192.168.1.124 test.me;
location / {
proxy_pass http://wordpress/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
}
现在对我来说,这似乎很可能与我的 nginx.conf 有关,因为我仍然能够在端口 8080 上连接到我的 WordPress 站点。正如我所说,我也能够连接到我的 Nginx代理,我在它启动时没有看到任何错误。
我正在尝试做的事情是否可能,或者我是否需要让 Nginx 应用程序位于操作系统上而不是在 docker 容器内?
【问题讨论】:
-
有read-to-use nginx反向代理容器自动检测容器如hub.docker.com/r/jwilder/nginx-proxy
标签: wordpress nginx docker docker-compose