NGinx 将请求从 subUri 传递到本地服务器

NGinx 将请求从 subUri 传递到本地服务器

我找不到 NGinx 配置中的错误。我有一个网站在 上启动http://local_ip:8079,需要通过 url 使其可供外部使用http://example.com/judge。因此,页面在 url 上本地提供,http://local_ip:8079/home.html以便通过 等访问http://example.com/judge/home.html。我做了一个配置:

server
{
    listen 80;
    server_name example.com;
    location /judge/
    {
        proxy_pass http://local_ip:8079/;
        proxy_redirect / http://example.com/judge/;
        proxy_set_header Host $proxy_host;
    }
}

页面已加载,但脚本和图像出现在网页源中,且 URL 未更改(即/style.css),浏览器未加载。我应该添加哪个指令?

答案1

proxy_redirect 只会重写重定向标头,而不会重写实现此功能所需的 HTML 内容。在 Nginx 中没有简单的方法可以重写 HTML 内容。

有 HttpSubModule,您可以手动添加文本替换,但设置每个替换需要很长时间:

http://wiki.nginx.org/HttpSubModule

最简单的方法是更新内容http://本地IP:8079/改为使用重定向路径。

相关内容