浏览 4.8k
nginx 反向代理 plex , 使用 “location /” 可以正常反向代理 plex, 使用 “location /plex/” 反向代理失败 , 请大家帮忙看看应该如何修改才能解决问题. 谢谢
“location /”正常
server {
listen 7002;
server_name 10.0.0.250;
location / {
proxy_pass http://10.0.0.2:32400/;
}
}“location /plex/” 反向代理失败
server {
listen 7002;
server_name 10.0.0.250;
location /plex/ {
proxy_pass http://10.0.0.2:32400/;
}
}Nginx 返回 下面报错信息
2021/09/05 07:13:40 [error] 9#9: *19 open() "/etc/nginx/html/web/js/main-179-1dae58ee552261595ebe-plex-4.57.4-320801d.js" failed (2: No such file or directory), client: 10.0.0.2, server: 10.0.0.250, request: "GET /web/js/main-179-1dae58ee552261595ebe-plex-4.57.4-320801d.js HTTP/1.1", host: "10.0.0.250:7002", referrer: "http://10.0.0.250:7002/plex/web/index.html"
10.0.0.2 - - [05/Sep/2021:07:13:40 +0000] "GET /web/js/main-179-1dae58ee552261595ebe-plex-4.57.4-320801d.js HTTP/1.1" 404 169 "http://10.0.0.250:7002/plex/web/index.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" "-"按照官方的 rtmp 规范文档第 30 页的内容,"rtmp://example.com/vod/1/test.mp4" 这种 url 是错的,因为规范文档里写明了 tcUrl 的格式是 "protocol://servername:port/appName/appInstance",即 url 中除了协议名,主机名和端口外,只能有两层。而你的 url 是3层,所以无法访问。
解决办法有 3 种:
1. 可以将 application vod 修改为 application x (x 是数字),但是这中配置不太灵活,因为服务器无法事先知道你有多少个摄像头。
2. 摄像头生成的媒体文件带上编号,例如:1 号摄像头生成的媒体文件是 1_test.mp4,2 号摄像头生成的媒体文件是 2_test.mp4,以此类推。
3. 你这使用的是 nginx-rtmp-module 及其各种变种吧,源代码都开放了,如果有能力,可以自己修改源代码以达到要求。
LOG如下:偶数次是超时。
Hello and welcome!
test-->
--->
0:{"user": "demo1","age": 1}
--1->
--2: 200
--3:: [POST] test!
--5->
disconnect()
return :[POST] test!
--->
1:{"user": "demo1","age": 2}
--1->
java.net.SocketTimeoutException: Read timed out
disconnect()
return :java.net.SocketTimeoutException: Read timed out
--->
2:{"user": "demo1","age": 3}
--1->
--2: 200
--3:: [POST] test!
--5->
disconnect()
return :[POST] test!
--->
3:{"user": "demo1","age": 4}
--1->
java.net.SocketTimeoutException: Read timed out
disconnect()
return :java.net.SocketTimeoutException: Read timed out
--->
4:{"user": "demo1","age": 5}
--1->
--2: 200
--3:: [POST] test!
--5->
disconnect()
return :[POST] test!
--->
5:{"user": "demo1","age": 6}
--1->
java.net.SocketTimeoutException: Read timed out
disconnect()
return :java.net.SocketTimeoutException: Read timed out
Process finished with exit code 0
微信公众号
加入微信群