通过反向代理实现不同域名访问同一IP的不同端口

基于同一IP的不同端口访问不同的网站(可以通过域名去访问)

ip+port1 -》 对应一个域名

ip+port2 -》 对应一个域名

使用域名1访问到ip+port1对应的内容

使用域名2访问到ip+port2对应的内容

通过反向代理实现不同域名对应不同端口

服务端配置

环境:Redhat 8.0

主程序:httpd

首先查看本机IP地址

[root@KATANA extra]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.98.130  netmask 255.255.255.0  broadcast 192.168.98.255
        inet6 fe80::d991:9d25:2c80:9272  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c3:cc:5a  txqueuelen 1000  (Ethernet)
        RX packets 16011  bytes 1485312 (1.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14058  bytes 5176000 (4.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以看到本机IP是192.168.98.130

在/etc/httpd/conf.d/目录下创建两个虚拟主机监听9090和9091端口

<Directory "/www/port">
    AllowOverride None
    Require all granted
</Directory>

Listen 192.168.98.130:9090
Listen 192.168.98.130:9091

<VirtualHost 192.168.98.130:9090>
    DocumentRoot "/www/port/9090"
    DirectoryIndex index.html
</VirtualHost>

<VirtualHost 192.168.98.130:9091>
    DocumentRoot "/www/port/9091"
    DirectoryIndex index.html
</VirtualHost>

启动httpd服务,测试虚拟主机

配置httpd反向代理,创建反向代理文件

<VirtualHost 192.168.98.130>
    #代理域名   
    ServerName www.port9090.com
    #反向代理不需要开启ProxyRequests 
    ProxyRequests Off Order deny,allow from all
    #接受来自任何地方的请求  Allow from all 
    ProxyPass / http://192.168.98.130:9090
</VirtualHost>

<VirtualHost 192.168.98.130>
    ServerName www.port9091.com
    ProxyRequests Off Order deny,allow frome all
    ProxyPass / http://192.168.98.130:9091
</VirtualHost>          

在httpd的配置文件中开启反向代理模块导入配置文件

在/etc/httpd/conf/httpd.conf文件末尾追加

#在apache开启时加载代理模块
LoadModule proxy_module modules/mod_proxy.so
#在apache开启时加载代理http模块 
LoadModule proxy_http_module modules/mod_proxy_http.so
#导入conf/extra/httpd-vhosts.conf 
Include conf/extra/httpd-vhosts.conf

重启httpd服务

[root@KATANA conf]# systemctl restart httpd
[root@KATANA conf]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Fri 2023-02-03 23:48:54 CST; 9s ago

客户端配置

环境:Windows 10

主程序:Edge浏览器

在Windows搜索栏中输入cmd,选择以管理员身份运行

以记事本方式打开hosts文件

C:\WINDOWS\system32>notepad drivers/etc/hosts

在hosts文件尾部追加域名解析(记得保存)

192.168.98.130 www.port9090.com
192.168.98.130 www.port9091.com

结果测试

启动Edge浏览器,在地址栏输入域名查看对应的页面

port9090所对应的9090端口

port9091对应的9091端口

测试成功

同一ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录结构如上 2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } (完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名 proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现不同来访域名的跳转) 如下: 3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:start nginx Cmd窗口会闪一下 进程里面会多了个 浏览器里面输入:http://127.0.0.1 将出现: Nginx的欢迎界面。 注: nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值