基于nginx实现反向代理

准备工作:关闭虚拟机防火墙,selinux,关闭物理机防火墙,关闭物理机的代理。

第一步:配置上游服务器(这里用apache)

1.安装apache

# yum install httpd  -y

2.创建一个测试文件

# cd /var/www/html/
# echo "<h1>test for proxy</h1>" >./index.html

3.修改网络连接方式。(为了效果我们这里将上游服务器的和反向代理服务器分别设置在不同的网段)修改网络连接方式为任意一个虚拟网络即可(这里我用vmnet4)

4.修改IP地址

# cd /etc/sysconfig/network-scripts/
# vim ifcfg-eth0

修改里面的内容如下

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.5.2
NETMASK=255.255.255.0
GATEWAY=192.168.5.1

5.重启网络

# service network restart

6.启动apache

# service httpd restart 

第二步:配置代理服务器(基于nginx)

1.添加一块网卡,并设置网络连接的方式和上游服务器相同(这里我用的是vmnet4)

2.修改第二块网卡的ip地址

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ./ifcfg-eth1
# vim ifcfg-eth1

修改里面的内容如下

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.5.1
NETMASK=255.255.255.0

3.重启网络

# service network restart

4.安装nginx

yum install nginx -y

5.测试是否可以访问上游服务器中的网页

# curl http://192.168.5.2/index.html

结果如下<h1>test for proxy</h1> 说明可以正常连接上游服务器。

6.修改nginx的配置文件

# cd /etc/nginx/conf.d/
# vim default.conf

在配置文件的server中添加一个location如下:

location / {
            proxy_pass http://192.168.100.191:80/;      
            	# 指定将用户请求代理到上游服务器
            proxy_set_header Host $host;                
            	# 添加一个新首部,首部名称叫做Host,目的是为了保存客户端所请求的域名
            proxy_set_header X-Real-IP $remote_addr;    
            	# 添加一个新首部,首部名称叫做X-Real-IP,值是一个变量的值
        }

配置文件如上
7.重启nginx

# service nginx restart

8.测试
在本地物理机浏览器输入nginx第一块网卡的IP地址,页面显示结果如下图
测试结果
注意:nginx所在虚拟机的第一块网卡ip地址需要和物理机的本地连接在一个网段(我的物理机本地ip地址为10.220.5.10,nginx所在虚拟机的第一块网卡ip为10.220.5.111)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值