鍍金池/ 問答/Linux  HTML/ docker部署nginx反向代理wordpress后,加一層/wp訪問路徑,訪

docker部署nginx反向代理wordpress后,加一層/wp訪問路徑,訪問不到。

現(xiàn)在nginx在一個容器上運行,wordpress在一個容器上運行(wordpress是dockerhub上拖取的最新官方鏡像,是以apache服務(wù)器運行的php程序),兩個容器相互獨立。想要以http://192.168.8.107/wp/ 這個地址訪問到wordpress(沒有做反向代理之前是以 http://192.168.8.107:8000訪問)。

nginx 部分代碼

server {
    #監(jiān)聽端口號
    listen  80;

    #服務(wù)名
    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服務(wù)這樣寫的(mysql是另一個容器,不用關(guān)注這個)。

 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,但是頁面顯示不出來,顯示如下圖。

圖片描述

正常情況下是此頁面就對了(請忽略此端口號,因為這個是另外開的服務(wù))。

圖片描述

回答
編輯回答
萌小萌

樓主,我也遇到了這個問題,請問最后是怎么解決的呢?

2017年8月18日 14:01
編輯回答
赱丅呿

請求192.168.8.107/wp的時候,反向代理的地址是 192.168.8.107:8000/wp,然后WordPress重定向到/wp-admin/install.php,然后nginx找不到對應(yīng)的location:/wp-admin
我沒用過wordpress 不清楚url配置,可以試下nginx location配置改成 /wp-admin/

2018年5月28日 21:23