Nginx proxy_pass 到 wordpress docker 容器

Nginx proxy_pass 到 wordpress docker 容器

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

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

Docker Hub Wordpress repo:(我不能发布超过两个链接,但它是官方的 Wordpress repo)

经过一些配置后,我设法让 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;
    }
}

docker run 命令

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"

答案1

设置一些标头可能会有所帮助,以便上游知道正确的前端服务器名称。请参阅这个文件了解更多信息。

例如,我使用:

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 设置是否正确。请参阅这个文件了解详情。

相关内容