惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
T
Tenable Blog
博客园_首页
S
Securelist
Spread Privacy
Spread Privacy
Google Online Security Blog
Google Online Security Blog
Forbes - Security
Forbes - Security
Engineering at Meta
Engineering at Meta
U
Unit 42
L
LINUX DO - 热门话题
量子位
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
K
Kaspersky official blog
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
Martin Fowler
Martin Fowler
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Security Latest
Security Latest
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
月光博客
月光博客
Recent Announcements
Recent Announcements
G
Google Developers Blog
F
Full Disclosure
W
WeLiveSecurity
宝玉的分享
宝玉的分享
腾讯CDC
G
GRAHAM CLULEY
Vercel News
Vercel News
Simon Willison's Weblog
Simon Willison's Weblog
美团技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security

NGINX

有用 Nginx UI 的朋友吗?这玩意是不是时不时将磁盘 IO 打满? fail2ban 保护 nginx 方案 - V2EX 麦当劳服务模式是 nginx,肯德基服务模式是 apache,这样理解对不对? - V2EX oracleusa.ml 的实现原理 - V2EX 尝试自己配置转发后端请求的时候有个疑问 - V2EX 请教 Nginx 时完整的 SSL 刷新教程或者脚本 - V2EX 问问大家 nginx 日志流量分析用什么方案? - V2EX nginx 二级目录反向代理是不是有先天缺陷? - V2EX nginx rewrite 指令的问题 - V2EX 问个 nginx 配置问题 - V2EX 请问下为啥微信客户端访问到 nginx 没有参数了? - V2EX 有兄弟们用 nginx proxy manager(或者其他图形化工具)来管理 nginx 反向代理的吗? - V2EX 请问 Nginx 怎么添加 CORS 白名单? - V2EX 使用 nginx 监听已被监听的端口, reload 不会失败, 但会导致其他配置不生效. - V2EX nginx 如何获取/打印完整代理路径? - V2EX Nginx 四层反代 QUIC 如何传递客户端 IP - V2EX 关于 windows 下面重启之后 nginx 的问题 - V2EX 我是不是可以反向代理个 V2EX 网站? - V2EX 用 nginx 做的 xai 的转发好像一直有问题 - V2EX 请教一个 Nginx 配置和浏览器强制 http 转 https 问题 - V2EX nginx proxy manager ipv6 反代指向内网 ipv4 局域网地址,还可以这样操作🤔? - V2EX 关于 Nginx 反向代理性能调优的问题,求指导🙏 - V2EX nginx 配置根据请求头分发问题 - V2EX 用过 nginx-proxy-manager 请进, 咨询个问题. - V2EX 使用 Nginx 代理 Emby 服务器,浏览器可以访问但是客户端连不上 - V2EX 小白在使用 Nginx proxy manager 遇到问题,请大佬们指教。 - V2EX 请教下 nginx 反代配置 - V2EX nginx 配置问题求解答 - V2EX Nginx 流量异常,请大佬支招~ - V2EX nginx 读取 ssl 证书的权限问题请教 - V2EX 请问一个二级域名如何配置可以访问多个 http 服务? - V2EX 配置证书相关的问题 - V2EX 关于 nginx 的一些提问 - V2EX nginx 限流失败的奇怪问题 - V2EX 反向代理提示该网站已被拦截,请教 - V2EX 为什么我的 docker nginx 的不能反向代理 favicon 啊 - V2EX Nginx 能不能实现按域名限制网速? - V2EX 请教一下各位关于 nginx 版本更新区别导致反向代理无法访问的问题 - V2EX 虚心请教一个有关于 nginx 配置的问题 - V2EX 求解 nginx 反代某堡垒机 443 页面出现问题 - V2EX nginx if 语句 return 403,没办法跳转自定义 403 页面 - V2EX 请教 nginx deny 优先级的问题。 - V2EX 求教关于反代的问题 - V2EX nginx 增加 http 块 就报证书错误,请问是什么原因,第一次见 - V2EX 有台生产服务器, Nginx 每天都会因为不同原因 exit 一次,虽然配了自动重启,有没办法排查是什么原因?平均一天 1820 万请求 - V2EX openresty 怎么修改代理站的文件返回给客户端 有啥平替 resend、ZeptoMail 的国内解决方案嘛? 求救:屏蔽爬虫试了 2 天,没成功 - V2EX
我有一个端口转发问题,求大佬们协助 - V2EX
AndreasG · 2025-01-09 · via NGINX

这是一个创建于 521 天前的主题,其中的信息可能已经有所发展或是发生改变。

我现在有三个容器开着,路由器开放了三个端口, 我想能不能开放一个端口用拼接 url 方式转发到不同的内网服务下,

server {  
    listen 10086 ssl;  
    server_name abc.com;
        location / {  
        proxy_pass http://192.168.0.100:10086;
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;
        }


        location /book {  
        proxy_pass http://192.168.0.100:10010;
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

类似这样配置了 nginx 之后 直接访问 abc.com:10086 端口访问全部没问题 但是转发的第二个端口

abc.com:10086/book

并不能成功转发到 192.168.0.100:10010 浏览器调试发现使用 abc.com:10086/book 发出的请求中 css js 之类的都是

abc.com:10086/static/?.css
abc.com:10086/static/?.js

而并没有到

abc.com:10086/book/static/?.css
abc.com:10086/book/static/?.js

状态都是 404 了 问了一下 gpt 说是需要找到真实的静态资源地址,这个容器的话怎么搞呢?还是说我的 nginx 需要配置其他配置项才可以呢,求大佬们帮助

第 1 条附言  ·  2025 年 1 月 9 日

多谢各位大佬解答,目前因为是前后端资源都不能很好的子u给,(都是docker容器)看了一下大佬们的解答,受用无穷

最后我的解决方案

  1. 增加配置 *.name.com 的泛域名证书
  2. 在阿里云域名解析里配置了多个二级域名解析到同一个地址
  3. nginx 中配置使用了同端口不同域名的方式绕过了这个问题
  4. 最后贴上我的nginx配置部分,有需要可以参考,有不合理的也请各位大佬指出
  5. 非常感谢各位的协助,我已经实现了一个端口多个服务的需求
  server {  
   listen 3000 ssl;  
   server_name name.com www.name.com;  
   location / {  
       proxy_pass http://192.168.0.100:10086;  
       proxy_set_header Host $host;  
       proxy_set_header X-Real-IP $remote_addr;  
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
       proxy_set_header X-Forwarded-Proto $scheme;  
   }  
 
}  
server {  
   listen 3000 ssl;  
   server_name book.name.com www.book.name.com;  
       location / {  
       client_max_body_size 10M;  
       proxy_pass http://192.168.0.100:10010;  
       proxy_set_header Host $host;  
       proxy_set_header X-Real-IP $remote_addr;  
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
       proxy_set_header X-Forwarded-Proto $scheme;  
   }  
}
ssiitotoo

1

ssiitotoo      2025 年 1 月 9 日

要实现所有静态都走 book 你需要更改静态入口文件的路劲添加 book 要不然 默认都是请求/

doveyoung

2

doveyoung      2025 年 1 月 9 日

如果你的 192.168.0.100:10010 能识别 192.168.0.100:10010/book 这个路径,可以试试修改 nginx 的 proxy_pass 配置
proxy_pass http://192.168.0.100:10010 ; --> proxy_pass http://192.168.0.100:10010/book ;
如果你后端真正的服务识别不了 /book 这个路径,你可以在 nginx 额外加 server 配置 book.abc.com proxy_pass 到 192.168.0.100:10010

我看你的 /book 还加了 proxy_set_header ,这样会让你后端真正的服务接收到 {host: abc.com} ,不知道这符不符合你的期望

jupiterISme

3

jupiterISme      2025 年 1 月 9 日

location /book {
proxy_pass http://192.168.0.100:10010/book;
...
}
试试这个

sagaxu

4

sagaxu      2025 年 1 月 9 日

你的网站支持部署到非根路径吗?网站不支持也是白搭。

zizon

5

zizon      2025 年 1 月 9 日

说明你
http://192.168.0.100:10010 host 的页面的资源路径写的就是 static/?.css

你要么把页面的资源路径也写成 book/static/?.css
要么找个插件在 nginx 上把后端 proxy 对象返回的页面里的对应资源路径给 rewrite 了.

oouz

7

oouz      2025 年 1 月 9 日

是不是需要换一下 /book 和 / 配置的位置,把/book 换到 / 的前面去。
我记得之前看到过好像这个配置的匹配是按顺序匹配,你现在/ 放在最前面,不管是 abc.com:10086 还是 abc.com:10086/book 都会被 / 匹配成功。所以都走的 192.168.0.100:10086

把这两个换一下位置试试?

jadeborner

8

jadeborner      2025 年 1 月 9 日

前端 publicpath 加上 book

ltaoo1o

9

ltaoo1o      2025 年 1 月 9 日

上面的人已经说到根本原因了,静态网站需要做一些配置,如果是 `vite` 项目, `base` 需要配置为 `/book`。

我刚好有一个这种项目,我分别有 `/pc`、`/mobile` 两个网站,通过 `www.domain.com/pc` 和 `www.domian.com/mobile` 访问,我的目录结构如下

```
apps
- flix_prod_web
- pc
index.html
static
- mobile
index.html
static
```

nginx 配置

```
location /mobile {
alias /apps/flix_prod_web/mobile;
try_files $uri $uri/ /mobile/index.html;
}
location /pc {
alias /apps/flix_prod_web/pc;
try_files $uri $uri/ /pc/index.html;
}
```

前端我用了 `browser history`,这样可以保证刷新时不会 404 。

我是问 GPT 实现的,具体原理我也不懂。

JayZXu

10

JayZXu      2025 年 1 月 9 日

只用 nginx 是无法实现这个分流的
核心原因在于编译好的前端去请求地址时是写死的,你代理的两个地址实际上只区分的入口,即 index.html 。但是后续请求的接口和静态资源没办法区分了

前端是自己写的,可以通过修改 publicpath 或者 base 参数重新打包

不是自己写的,要么通过域名在 nginx 做 server_name 分流,要么本地写 host 实现主机名访问再通过 nginx 的 server_name 分流

wxd21020

12

wxd21020      2025 年 1 月 9 日

兄弟,上 lucky ,搜一下 lucky

partner666

13

partner666      2025 年 1 月 9 日

你想实现的效果需要在前端改,或者这样? location /book {
proxy_pass http://192.168.0.100:10010/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

R77

14

R77      2025 年 1 月 9 日

location ~ ^/(js|css|images)/ {
proxy_pass http://xxx;
}

可以试试,类似的

AndreasG

16

AndreasG      2025 年 1 月 9 日

@R77 我试了一下静态地址请求拼接的方式,静态文件都加载成功了,您这个方式获取静态资源是完全可行的,但是由于还有后端接口貌似不通,最后使用了二级域名解决了这个问题,多谢老哥解答

AndreasG

22

AndreasG      2025 年 1 月 9 日

@zizon 貌似有点走远了,我查了查要彻底解决貌似是要改改,不过我这项目是弄好的 docker 不好改了,不过多谢

AndreasG

23

AndreasG      2025 年 1 月 9 日

@oouz 试了试不太行,貌似不是这个原因,不过已经解决,多谢老哥协助

sparkssssssss

25

sparkssssssss      2025 年 1 月 9 日

proxy_redirect http://192.168.0.100:10086/ /book/;

试试呢

sparkssssssss

26

sparkssssssss      2025 年 1 月 9 日

location /book {
proxy_pass http://192.168.0.100:10010;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http://192.168.0.100:10010/ /book/;
}

lovelylain

27

lovelylain      2025 年 1 月 9 日 via Android

@coolloves proxy_redirect 解决的只是 header location 跳转,网页里用了绝对路径还是会有问题的,能重新构建网页的话可以改为使用相对路径,不能的话用 sub_filter 替换运气好也能搞定,但是很麻烦

franklinyu

28

franklinyu      2025 年 1 月 11 日 via iPhone

代码不好改的话,#6 提到的子域名确实是最简单的方案了