首页 > 解决方案 > Nginx 重写 url 以匹配代理地址

问题描述

我正在运行一个 wordpress docker 容器,可以通过主机端口访问该站点8000,如果转到 localhost:8000 繁荣我可以看到我的 wordpress 站点。

总是打字看我的网站很无聊localhost:8000,所以我决定委托 nginx 作为我网站的反向代理。我已经在 nginx 中设置了一个名为 的虚拟主机proxy.site,我现在可以通过 wordpress 站点访问http://proxy.site

到目前为止,我们做得很好,当http://proxy.site打开时,我可以看到我的博客文章列表,假设我想阅读关于 COVID-19 的最新博客文章,当我点击链接时,它打开了作为http://localhost:8000/posts/covid19

我希望它使用代理 url 打开http://proxy.site/posts/covid19,我需要通过http://proxy.site站点名称访问整个站点,

我需要 nginx 来重写我的所有链接,没有人喜欢在localhost:8000/*访问proxy.site/*博客时输入端口,

这是我的 nginx conf 文件的样子

server {
        listen 80;
        listen [::]:80;

        root /var/www/proxy.site/html;
        index index.html index.htm index.nginx-debian.html;

        server_name proxy.site www.proxy.site;

        location / {
                proxy_pass http://localhost:8000;
                #proxy_set_header HOST $host;
                #proxy_redirect http://localhost:8000/ http://proxy.site/ ;
                #try_files $uri $uri/ =404;
        }
}

如何使用我的自定义主机名重写代理站点中的所有 url?

标签: wordpressdockernginxproxy

解决方案


Nginx 不监听 localhost:8080,nginx 不会检查来自您站点的链接来重写它们,您应该在 WordPress 上找到一种方法来替换您的链接的基本 url。基于环境


推荐阅读