Nginx proxy_pass 到 wordpress docker 容器

kaw*_*joe 3 nginx wordpress css proxypass docker

大家好,如果我犯了一个基本错误,我很抱歉,但我真的迷路了。

我已将 Ubuntu 16.04 服务器设置为 Nginx(不在 docker 容器中,在主机上运行)和 wordpress(在 docker 容器中)。

Docker Hub Wordpress 存储库:(我不能发布两个以上的链接,但它是官方的 Wordpress 存储库)

经过一些配置,我设法让 nginx 运行和 wordpress 容器。当我通过原始 IP 地址和端口访问 wordpress 网站时,它工作正常。但是,当我从 nginx 到容器执行 proxy_pass 时,我的 wordpress 网站似乎丢失了所有的 css。具有讽刺意味的是,该页面仍然有点加载。

这是一个示例:(指向图像的超链接)

http://[IP 地址]: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;
    }
}
Run Code Online (Sandbox Code Playgroud)

docker 运行命令

docker run --name example.com -d -v /docker/example.com:/var/www/html wordpress
Run Code Online (Sandbox Code Playgroud)

/etc/hosts(我已将以下行添加到文件中)

[IP address] example.com
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助!

编辑:

  • /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"
Run Code Online (Sandbox Code Playgroud)

Ric*_*ith 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               "";
Run Code Online (Sandbox Code Playgroud)

此外,请检查您的 HOME 和 SITEURL 设置是否正确。有关详细信息,请参阅此文档