docker部署nginx反向代理wordpress后,加一层/wp访问路径,访问不到。

现在nginx在一个容器上运行,wordpress在一个容器上运行(wordpress是dockerhub上拖取的最新官方镜像,是以apache服务器运行的php程序),两个容器相互独立。想要以http://192.168.8.107/wp/ 这个地址访问到wordpress(没有做反向代理之前是以 http://192.168.8.107:8000访问)。

nginx 部分代码

server {
    #监听端口号
    listen  80;

    #服务名
    server_name  192.168.8.107;

    location /wp/ {
        root   html;

        index  index.html index.htm index.php;

        #反向代理路径
        proxy_pass http://192.168.8.107:8000;

        #反向代理的超时时间
        proxy_connect_timeout 10;

     }
 }

wordpress在机器192.168.8.107的8000端口上以一个docker容器运行

docker-compose中的wordpress服务这样写的(mysql是另一个容器,不用关注这个)。

 wordpress:
  image: wordpress
  container_name: wordpress
  restart: always
  ports:
   - 8000:80
  depends_on:
   - mysql
  environment:
   WORDPRESS_DB_PASSWORD: root
   WORDPRESS_DB_HOST: mysql:3306

但是这样访问不到wordpress的页面,下图的172.17.30.225是一个跳板机,不懂的话可以大致理解为它就是192.168.8.107这台机器。

图片描述

访问172.17.30.225/wp后,地址栏会自动定位到/wp-admin/install.php,但是页面显示不出来,显示如下图。

图片描述

正常情况下是此页面就对了(请忽略此端口号,因为这个是另外开的服务)。

图片描述

阅读 8.8k
3 个回答

请求192.168.8.107/wp的时候,反向代理的地址是 192.168.8.107:8000/wp,然后WordPress重定向到/wp-admin/install.php,然后nginx找不到对应的location:/wp-admin
我没用过wordpress 不清楚url配置,可以试下nginx location配置改成 /wp-admin/

新手上路,请多包涵

楼主,我也遇到了这个问题,请问最后是怎么解决的呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题