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

推荐订阅源

V
V2EX
爱范儿
爱范儿
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
B
Blog RSS Feed
博客园 - 聂微东
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
Scott Helme
Scott Helme
AI
AI
S
Security Affairs
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
AWS News Blog
AWS News Blog
T
Threatpost
Cyberwarzone
Cyberwarzone
www.infosecurity-magazine.com
www.infosecurity-magazine.com
U
Unit 42
V
Vulnerabilities – Threatpost
J
Java Code Geeks
博客园 - Franky
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
NISL@THU
NISL@THU
D
Docker
小众软件
小众软件
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
Arctic Wolf
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Forbes - Security
Forbes - Security
量子位
PCI Perspectives
PCI Perspectives
美团技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
有赞技术团队
有赞技术团队
腾讯CDC
P
Proofpoint News Feed
S
Security @ Cisco Blogs
G
Google Developers Blog
C
Cisco Blogs

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 提到的子域名确实是最简单的方案了