Nginx

Nginx proxy_pass 到 wordpress docker 容器

  • March 11, 2017

大家好,如果我犯了一個基本的錯誤,我很抱歉,但我真的迷路了。

我已經設置了我的 Ubuntu 16.04 伺服器是 Nginx(不在 docker 容器中,在主機上執行)和 wordpress(在 docker 容器中)。

Docker Hub Wordpress repo:(我不能發布超過兩個連結,但它是官方的 Wordpress repo)

經過一些配置,我設法讓 nginx 和 wordpress 容器執行起來。當我通過原始 IP 地址和埠訪問 wordpress 網站時,它工作正常。但是,當我從 nginx 到容器執行 proxy_pass 時,我的 wordpress 網站似乎失去了所有的 css。具有諷刺意味的是,頁面仍然有點載入。

這是一個範例:(圖像的超連結)

http://$$ IP Address $$:51080/wp-admin/install.php

http://example.com/wp-admin/install.php

網站可用

upstream example.com {
   server localhost:51080;
}

server {
   listen  80;
   server_name example.com;

   location / {
       proxy_pass http://localhost:51080;
   }
}

碼頭工人執行命令

docker run --name example.com -d -v /docker/example.com:/var/www/html wordpress

/etc/hosts(我在文件中添加了以下行)

[IP address] example.com

感謝您的任何幫助!

編輯:

  • /var/log/nginx/error.log - 是空的(是的,我已經檢查過了,它正在記錄到這個文件)
  • /var/log/nginx/access.log

日誌條目:

<IP Address> - - [11/Mar/2017:11:33:35 -0500] "GET /wp-admin/install.php HTTP/1.1" 200 11144 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8"

設置一些標頭可能會有所幫助,以便上游知道正確的前端伺服器名稱。有關更多資訊,請參閱此文件

例如,我使用:

proxy_set_header    Host                $host;
proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
proxy_set_header    X-Forwarded-Proto   $scheme;
proxy_set_header    Accept-Encoding     "";
proxy_set_header    Proxy               "";

此外,請檢查您的 HOME 和 SITEURL 設置是否正確。有關詳細資訊,請參閱此文件

引用自:https://serverfault.com/questions/837684