nginx 如何反向代理 GO 语言编写的 web 服务?

2022-05-30 07:23:00 +08:00
 Richard14

github 上找了个 go 写的监控服务,想用 nginx 反向代理放到公网上,反向代理配置

server {
	...
    location / {       
        proxy_pass http://127.0.0.1:30666;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

按此配置执行后,访问根目录可以得到正确的 html ,但由 go 提供的静态资源无法加载,(比如 https://my.site/css/app.b9c5a4b6.css )这种资源,

在服务器本地运行

wget http://127.0.0.1:30666/css/app.b9c5a4b6.css

是可以正确获取到资源的,但是 nginx 无法代理,推测也许是 nginx 扫描本地目录当中没有 css 这个文件夹所以返回 404 ?

总之是本地有,远程返回 404 ,有无大佬知道是怎么回事

1367 次点击
所在节点    问与答
7 条回复
tcp
2022-05-30 07:44:45 +08:00
websocket ?
lovelylain
2022-05-30 08:04:06 +08:00
proxy_set_header Connection $http_connection;
estk
2022-05-30 08:32:33 +08:00
宝塔。。
villivateur
2022-05-30 08:42:23 +08:00
我觉得不太可能,要不你把你完整的配置发出来再看看
RoyLaw
2022-05-30 08:51:01 +08:00
去掉类似的配置:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
ragnaroks
2022-05-30 09:00:09 +08:00
websocket 单独代理
coolloves
2022-05-30 13:11:59 +08:00
贴下 nginx 的日志吧
nginx 只是负责转发,如果转发了,那就要看后端 go 的 web 日志为啥找不到静态资源

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX