相关疑难解决方法(0)

如何在NGINX中重写代理响应中的URL

我习惯使用Apache和mod_proxy_html,并试图用NGINX实现类似的功能.具体的用例是我在根上下文服务器上的端口8080上运行Tomcat中的管理UI:

http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

我需要在端口80上显示这个,但是我在这个主机上运行的NGINX服务器上有其他上下文,所以想尝试访问它:

http://localhost:80/admin/
Run Code Online (Sandbox Code Playgroud)

我希望以下超级简单的服务器块可以做到这一点,但它并不完全:

server {
    listen  80;
    server_name screenly.local.akana.com;

    location /admin/ {
        proxy_pass http://localhost:8080/;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是返回的内容(html)包含脚本和样式信息的URL,这些URL都是在根上下文中访问的,因此我需要将这些URL重写为以/ admin /而不是/开头.

我如何在NGINX中执行此操作?

nginx

62
推荐指数
3
解决办法
9万
查看次数

标签 统计

nginx ×1