请教下各位有关反向代理的问题,
Centos8环境下有什么程序或工具能将指定的域名解析到本地端口吗?尝试过Apache和Nginx的反向代理,但是似乎只能代理一个端口
如下Nginx配置后会直接把所有80端口的访问全部指向http://location:19130,
server {
listen 80;
location / {
proxy_pass http://location:19130;
}
}
如果还想代理其它本地端口只能再增加一个server块并监听另一个端口
假设仅监听80端口,而后根据域名分别指向某本地端口是否可行?
比如:
访问a.x-x.cn指向http://location:19130,
访问b.x-x.cn指向http://location:19131,
访问c.x-x.cn指向http://location:19132/;
类似于Apache的vhost.map文件那样,只不过指向的是本地端口而不是本地路径
谢谢各位解惑
基于Monster 组和GPT的调写:
用Nginx的server_name指令来实现将不同的域名指向不同的本地端口的目的。下面是一个示例配置:
server {
listen 80;
server_name a.x-x.cn;
location / {
proxy_pass http://location:19130;
}
}
server {
listen 80;
server_name b.x-x.cn;
location / {
proxy_pass http://location:19131;
}
}
server {
listen 80;
server_name c.x-x.cn;
location / {
proxy_pass http://location:19132;
}
}
每个server块都使用不同的server_name指令来匹配不同的域名,并将请求代理到相应的本地端口上。如果需要添加更多的域名,只需复制其中一个server块并更改server_name和proxy_pass指令即可。
# nginx.conf
http {
# ...
# 定义域名解析规则,将 a.x-x.cn 解析到 127.0.0.1:19130,将 b.x-x.cn 解析到 127.0.0.1:19131,将 c.x-x.cn 解析到 127.0.0.1:19132
resolver 127.0.0.1;
resolver_timeout 5s;
server {
listen 80;
server_name a.x-x.cn b.x-x.cn c.x-x.cn;
location / {
proxy_pass http://127.0.0.1:$server_port;
}
}
# ...
}
不知道你这个问题是否已经解决, 如果还没有解决的话: