本地主机和域的问题

本地主机和域的问题

我不知道该怎么办了。

我有一个nginx 服务器设置将请求传递到同一台机器上的端口,apache2 服务器正在听(是的,这是必要的)。

我这样做是使用

location /
{
    proxy_pass http://127.0.0.1:1000; 
}

在 nginx 中。

对于包含纯文本的简单 HTML 文件,此方法运行良好。现在我想设置 Wordpress,发现缺少 CSS。那是因为我的浏览器尝试从http://127.0.0.1/somefilehere.css而不是获取 CSS 文件(和其他文件) http://example.com/somefilehere.css。显然这不是我想要的,但我不知道如何修复它。我也不知道该提供什么进一步的信息,所以请随时提问。

更新:

为了具体说明问题,HTML 中的所有引用都指向本地主机(客户端计算机),当然,其中没有 css 和其他内容。

感谢,并有一个愉快的一天!

答案1

我认为您可以通过将其添加到您的位置块来完成:

proxy_set_header Host            $host;

这样,您的 Apache 服务器就知道用户正在访问什么网站。

顺便说一句,如果可能的话,让 Nginx 提供静态文件。这是 Nginx 擅长的,也是 Apache 不擅长的。为cssjpgpng等创建单独的位置块。网络上有许多示例。

答案2

失败的原因可能不在于nginx,而在于Apache无法识别127.0.0.1URL 的有效主机部分。

一个简单的测试就可以排除这种情况:从同一台机器,尝试直接从 Apache 服务器访问该 CSS 文件:

curl http://127.0.0.1:1000/somefilehere.css

如果返回文件且没有错误,您可能需要发布来自 nginx 的访问和错误日​​志(如果尚不可用,请启用它们)。参考:https://www.nginx.com/resources/admin-guide/logging-and-monitoring/

如果您收到错误curl,您应该检查 Apache 正在监听哪些 IP 地址(应该是 0.0.0.0、端口 1000,而不是留下环回接口的特定 IP 或网络)。

另外,检查 Apache 配置文件中的服务器名称和虚拟主机指令是否包含 127.0.0.1(或 localhost)作为服务域。

希望能帮助到你!

相关内容