Nginx反向代理

目录

一、环境准备

1、准备2台centos服务器

2、软件安装

二、反向代理实例1

1、nginx反向代理配置

2、客户端测试

三、反向代理实例2

1、环境准备

2、反向代理配置

3、客户端测试


一、环境准备

1、准备3台centos服务器

服务器名称主机名IP安装服务备注
Nginx反向代理服务器proxy192.168.1.10nginx关闭selinux和firewalld
httpd网站服务器web1192.168.1.20httpd关闭selinux和firewalld
httpd网站服务器web2192.168.1.30httpd关闭selinux和firewalld

2、软件安装

(1)、proxy服务器

安装nginx:Nginx安装、配置与概述_桂安俊@kylinOS的博客-CSDN博客

(2)、web1和web2服务器

yum install httpd -y   

#web1服务器
echo "this is 192.168.1.20 web1 server" > /var/www/html/index.html  #做一个首页,用于标记

#web2服务器
echo "this is 192.168.1.30 web2 server" > /var/www/html/index.html  #做一个首页,用于标记

修改web1和web2服务器/etc/httpd/conf/httpd.conf监听端口为8080,并启动httpd服务

二、反向代理实例1

实现效果:客户端访问proxy服务器192.179.1.10:80端口转发到web1服务器的8080端口,从而实现对web1 httpd网站的访问

1、nginx反向代理配置

server {
        listen       80;
        server_name  192.168.1.10;             #监听本地IP

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass http://192.168.1.20:8080;   #转发到指定IP和端口
            index  index.html index.htm;
        }

... ...

}

/usr/local/nginx/sbin/nginx  -s reload

2、客户端测试

访问proxy 192.168.1.10 IP

  可以看到已经成功转发到web1服务器的8080端口。

三、反向代理实例2

实现效果:使用Nginx反向代理,根据访问的路径不同,跳转到不同端口的服务中,nginx监听端口为9001,比如:

访问http://192.168.1.10:9001/edu/  直接跳转到192.168.1.20:8080

访问http://192.168.1.10:9001/vod/  直接跳转到192.168.1.30:8080

1、环境准备

在web1 httpd的html目录/var/www/html创建edu目录,并在edu目录下放一个a.html

echo "this is web1 server edu a.html"  >  /var/www/html/edu/a.html  #方便测试标识

在web1 httpd的html目录/var/www/html创建vod目录,并在edu目录下放一个a.html

echo "this is web2 server vod a.html"  >  /var/www/html/edu/a.html  #方便测试标识

访问一下:

2、反向代理配置

vim /usr/local/nginx/conf/nginx.conf

新增或修改一个server虚拟主机(nginx.conf下面有server模板):

server {
        listen       9001;    #监听端口
        server_name  192.168.1.10;

        location  ~  /edu/ {      #如果路径是/eud/就转发到192.168.1.20:8080
                proxy_pass http://192.168.1.20:8080;
        }

        location  ~  /vod/ {     #如果路径是/vod/就转发到192.168.1.30:8080
                proxy_pass http://192.168.1.30:8080;
        }

    }

/usr/local/nginx/sbin/nginx -s reload

3、客户端测试

访问:http://192.168.1.10:9001/edu/a.html

 访问:http://192.168.1.10:9001/vod/a.html

【补充】:关于location指令说明

该指令用于匹配URL,语法如下:

location [ = | ~ | ~* | ^~  URL ]  {

}

  • = :用于含正则表达式的URL前,要求请求字符串与URL严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求;
  • ~ :用于表示URL包含正则表达式,并且区分大小写
  • ~* :用于表示URL包含正则表达式,并且不区分大小写
  • ^~ :用于不含正则表达式的URL前,要求Nginx服务器找到表示URL和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则URL和请求字符串做匹配;

注意:如果URL包含正则表达式,则必须要有 ~ 或者 ~* 表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂安俊@kylinOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值