情况:二级域名(假设是 a.v2ex.com )已经在运营商控制台解析到了服务器 ip 地址(假设是 119.75.217.109),默认 80 端口。
服务器上,iis 跑了一堆网站,80 端口被 iis 用了。
nginx 跑了一堆网站,主要跑 18000 这个端口。
我想让 a.v2ex.com 这个二级域名指向 119.75.217.109:18000 ,应该如何操作?
情况:二级域名(假设是 a.v2ex.com )已经在运营商控制台解析到了服务器 ip 地址(假设是 119.75.217.109),默认 80 端口。
服务器上,iis 跑了一堆网站,80 端口被 iis 用了。
nginx 跑了一堆网站,主要跑 18000 这个端口。
我想让 a.v2ex.com 这个二级域名指向 119.75.217.109:18000 ,应该如何操作?
|
deplivesbAug 15, 2022
1
「二级域名(假设是 a.v2ex.com )已经在运营商控制台解析到了服务器 ip 地址(假设是 119.75.217.109),默认 80 端口」
A 记录啥时候能带端口了,80 不是 http 默认端口么,你要想通过 a.v2ex.com 这个域名直接访问到 18000 端口最简单就是 a.v2ex.com:18000 ,如果你不想手动指定端口,用 http 默认 80 ,那就去搜一下 nginx 端口转发 |
|
2
解析并不能指定端口,80 是 http 协议的默认端口,用户侧不输入端口的情况下,只能从 80 端口访问。
你的需求只能把 nginx 监听端口改成 80 ,或者用反向代理来将外来流量指向 18000 |
|
3
@chenluo0429 #2 nginx 监听不了 80 ,被用了
|
|
VensonEEEAug 15, 2022
4
2L 正解
|
|
lostberryzzAug 15, 2022
5
可以 iis 里设置反代 nginx 的一堆网站,或者你有多个 ip 的话,nginx bind 到不同的 ip 上,然后 dns 做改动也可以
|
|
6
@deplivesb #1 域名后面肯定不能带端口去操作,现实中暴露给用户的肯定是只有一个域名。我这是 nginx 端口转发吗,nginx 监听不了 80 呀,怎么转发
|
|
7
@lostberryzz #5 我本来想的是,iis 估计也有转发的功能,然后找了一下,看到了“HTTP 重定向”这个功能,发现不管用,我对 iis 不太熟,还不太清楚怎么搞
|
|
c332030Aug 15, 2022
8
@unt #3 iis 换下端口,nginx 用 server_name 不行吗,比如 b.v2ex.com 到 iis ,a.v2ex.com 正常 nginx 访问,b.v2ex.com 和 a.v2ex.com 都指向 119.75.217.109
|
|
JustSongAug 15, 2022 via Android
9
那就用 443 ,上 https ,一样不用端口
|
|
HuelseAug 15, 2022
10
iis 改其他端口,外部流量根据 nginx 配置的域名规则转发
|
|
11
域名解析不能指定端口,你这种情况最常规的解决方案就是在 iis 上设置反向代理到 nginx 的 18000 端口
现在很多 docker 应用也都是默认跑在本地某个端口上,然后再统一通过 nginx 反代开放至 internet 的 |
|
XusuallyAug 15, 2022 via iPhone
12
iis 不是也有反向代理吗?你都说了 iis80 跑了一堆网站了,也不在乎再跑个 b 网站啊,iis 配置监听 b 域名,iis 上配置 b 反向代理到 18000 端口的 nginx 不就可以了?
|
|
LineProAug 15, 2022
13
Google 搜索:IIS reverse proxy
|
|
selcaAug 15, 2022
14
很好奇,有种解析记录叫 srv 记录,这个我记得好像可以指定端口,但没看明白是什么,有大佬讲讲吗
|
|
15
IIS 的反向代理太难用了,IIS 其实是 http.sys 的前端而已,使用 yarp 托管在 http.sys ,继续监听 80 和 443 ,同时从 IIS 手里抢过 a.v2ex.com ,就可以灵活的配置反向代理了,而且性能也最佳。
|
|
jiulangAug 15, 2022
16
如果有需要,我可以帮你写这个与 IIS 共享端口(但分摊域名)的反向代理服务,这个服务可以灵活的配置反向代理到的任意上游服务
|
|
jiulangAug 15, 2022
17
当然,你也可以在 IIS 和你的新服务(非 IIS)之外,购买一台具有独立 IP 的服务器,上面跑一层 nginx (网关),把域名解析到新服务器的 IP ,然后在 nginx (网关)根据域名做反向代理规则
|
|
devehxAug 15, 2022
18
你看看你解析域名的时候不要用 A 记录,使用显性 URL 和隐性 URL 可以直接解析到一个 url 地址,可以带端口的。我之前这样搞过
|
|
nitmaliAug 15, 2022
20
找其他服务器反向代理中转一下
|
|
jiulangAug 15, 2022
22
这个场景我遇到过,某个有历史的 web 服务,用了 a,b,c,d 等多个二级域名完成各个业务模块,后面重写了 d 模块,并使用多台服务器来部署 d 模块。使用 yarp 托管在 http.sys ,可以只动 d 模块。
|
|
6IbA2bj5ip3tK49jAug 15, 2022
23
上面已经有人说了,“iis 反代” 就好了。
|
|
jiulangAug 15, 2022
27
建议还是搞基于 http.sys 的 yarp ,劫持部分域名,且反向代理与负载均衡同时支持
|
|
andyskauraAug 15, 2022
28
@selca srv 貌似不能用作 http 访问
|
|
yufeng0681Aug 15, 2022
29
方案 1 、弄一台 linux 机器安装 nginx 来跑 ip:119.75.217.109 的反向代理,可以基于域名指向后台各种服务,性能不差。
方案 2 、重新弄一个公网 ip ,linux 机器,跑新业务,新业务不太可能用 iis 等性能差的 web 服务器去跑,解耦了,也不会被老业务性能限制,也不会被已有业务的运营吐槽,给他们增加了运维压力,出了事情也不用背锅。 [未来更多的新业务都可以放在这里跑] |
|
honhonAug 15, 2022
30
iis 也是支持反向代理的,ARRv3.0
|
|
honhonAug 15, 2022
31
重定向浏览器的 ip 地址当然会变
|
|
liaohongxingAug 15, 2022
32
windows 装 nginx 没啥用。半残废 。iis 反代即可
|
|
apoisAug 15, 2022
33
我这边前面有台同 iis 80 443 和 nginx 8080 ,采用的方案是套 CDN ,源站地址可不同端口。
|
|
XusuallyAug 15, 2022 via iPhone
34
我 google 了一下 iis reverse proxy 第一页全是有效结果,有官方文档,也有博客文章……你随意参考一下就行了啊
|
|
dorothyRENAug 15, 2022
35
你需要的可能是 隐性 url
|