Nginx 反向代理无法访问我的网站但无法获取图片

Nginx 反向代理无法访问我的网站但无法获取图片

我已经为 Nginx 反向代理苦苦挣扎了 3 天,才意识到这是一件简单的事情。我只需从 Nginx 访问许多后端 node-red (nodeJS) 应用程序,但总是使用不同的端口。

接下来,这是我的示例:

Web client -> `https://ip_adr/1881/ui/` -> Nginx proxy_pass `http://127.0.0.1:1881/ui/` (app)

后端应用程序提供图片http://127.0.0.1:1881/*.jpg


  1. 我使用以下方法实现了静态测试:
location / {
        #proxy_pass http://127.0.0.1:1881;
}

https://ip_adress/ui在我的浏览器中,所有应用程序图片运行良好。

  1. 使用重写将端口从前端动态转发到后端:

    location ~ ^/(?<port>\d\d\d\d) {
    
        rewrite "^/\d{4}/(.*)" /$1 break;
        proxy_pass http://127.0.0.1:$port;
    

    }

使用正则表达式,我从 ip_adr/1881 中提取端口/(?<port>\d\d\d\d),然后重写 url,/1881但不保留/path1/path2/...

如果我把https://192.168.x.x/1881/ui/所有东西都放入浏览器中,但没有图片。


经过多次测试后,我的浏览器无法显示任何图像,并且跟踪错误日志显示所有图片均显示:

2022/03/10 01:01:36 [error] 50065#50065: *1224 open() "/usr/share/nginx/html/schema_fire_EEU.jpg" failed (2: No such file or directory), client: 192.168.1.29, server: exemple3.test.fr, request: "GET /schema_fire_EEU.jpg HTTP/1.1", host: "192.168.1.53", referrer: "https://192.168.1.53/1881/ui/"

这太不可思议了,如果我放进去https://192.168.x.x/1881/schema_fire_EEU.jpg,我就能显示这幅图像!!!

我认为,斜线有问题...

有人能帮助我吗?

祝你有美好的一天 ;-)

答案1

据我理解,问题可能在于您代理的 URI 不正确。

如果这个“https://192.168.xx/1881/schema_fire_EEU.jpg”有效,意味着你的服务正在“/”下公开你的图像,但是ProxyPass规则没有“/”。

您可以尝试:

ProxyPass / http://ip:port

祝你今天过得愉快。 :)

相关内容