【问题标题】:wordpress home url redirects to localhostwordpress 主页 url 重定向到本地主机
【发布时间】: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


【解决方案1】:

问题是一个简单的语法错误。我使用命令“service nginx restart”重新启动并使用新的 nginx 配置,但重新启动不会显示错误,并且会安静地退回到旧配置。服务器名称中缺少一个简单的“;”。

【讨论】:

    猜你喜欢
    • 2018-12-29
    • 2017-10-04
    • 1970-01-01
    • 2011-12-24
    • 2020-06-24
    • 2014-02-17
    • 2011-09-16
    • 2012-03-29
    • 2018-09-17
    相关资源
    最近更新 更多