【发布时间】:2020-07-24 13:56:53
【问题描述】:
我在主机中使用 Wordpress + mysql + phpmyadmin 和 docker-compose 以及带有 nginx 的反向代理将所有请求发送到 wordpress 容器。安装 wordpress 后,我将“site_url”和“home”选项名称设置为“http://example.com”。当我浏览http://example.com/wp-admin 时一切正常,但是当我尝试使用http://example.com 时,它会将我重定向到本地主机。一切都在远程服务器中,我从浏览器而不是服务器本身执行这些请求。 这是我的 nginx 配置文件:
server {
listen 80;
listen [::]:80;
server_name example.com
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://localhost:8000;
}
}
这是 docker-compose 文件:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- /home/wordpress/mysqldb:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresspass
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- /home/wordpress/wordpress/html:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpresspass
WORDPRESS_DB_NAME: wordpress
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- '8080:80'
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: rootpass
如果我使用 ServerIp:8000 设置选项名称,则地址 http://example.com 有效,但其他所有内容都使用 ServerIp 重定向,我想使用域名。我是否缺少 wordpress 选项的某些内容?
【问题讨论】:
-
如果将
proxy_pass http://localhost:8000;改为proxy_pass http://<IP of the server>:8000;并重启Nginx容器会怎样? -
@J.ScottElblein 不起作用。如果我在浏览域时以这种方式更改它,我将被重定向到 nginx 页面,并且我的 docker 容器将无法访问。我认为问题不在于代理,而在于 Wordpress
标签: wordpress docker nginx docker-compose reverse-proxy