博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux服务之nginx服务篇三(反向代理、负载均衡)
阅读量:5052 次
发布时间:2019-06-12

本文共 3202 字,大约阅读时间需要 10 分钟。

一、Nginx实现反向代理

概念

反向代理:在收到客户端请求之后,会修目标IP地址和端口

正向代理:在收到客户端请求之后,会修源IP地址和端口

上游服务器:代理服务器后端的哪些真正给客户端提供服务的节点,这样的服务器称之为上游服务器

下游服务器:客户端就是下游节点

模块:nginx_http_proxy_module

    指令:

    proxy_pass:指定上游服务器的ip和端口

    proxy_set_header:指定在重新封装请求报文的时候,添加一个新的首部

部署步骤:

检查环境

1.安装服务

yum -y install nginx httpd php

2.配置httpd端口

vim /etc/httpd/conf/httpd.conf

###########

Listen 45678

############

3.启动httpd

systemctl start httpd

systemctl enable httpd

netstat -anp|grep httpd

4.修改Nginx配置文件

vim /etc/nginx/nginx.conf

########

删除默认的80端口server          #切记最后需要加一个}

###############

cd /etc/nginx/conf.d

vim pass.conf

###########

 server {

     listen      80;

     location / {  

     proxy_pass   http://127.0.0.1:45678;

     }

}

###########

5.启动nginx

nginx -t              #进行语法检测

systemctl restart nginx

systemctl enable nginx

netstat -anp|grep nginx

firewall-cmd --add-port=80/tcp

firewall-cmd --add-port=80/tcp --permanent

6.浏览器验证

7.验证php

echo "<?php phpinfo(); ?>" > /var/www/html/index.php

8.浏览器验证

9.配置nginx网站

mkdir /nginx

echo "123" > /nginx/index.html

vim /etc/nginx/conf.d/pass.conf

###################

 server {

     listen      80;

     location ~* \.php$ {  

     proxy_pass   http://127.0.0.1:45678;

     }

     location / {  

     root /nginx;

     }

}

################

10.重启nginx

nginx -t

systemctl restart nginx

11.浏览器验证

IP/index.html

IP/index.php

补充:

location如下

        location /admin {

            proxy_pass http://www.ken.com/;

            proxy_pass http://www.ken.com;   

        }

请求的url http://www.ken.com/admin/a.html

如果代理方式是 proxy_pass http://www.ken.com/; 那么去www.ken.com的跟目录下找a.html,/代表完全代理

如果代理方式是 proxy_pass http://www.ken.com; 那么去www.ken.com的跟目录下的admina.html

二、nginx实现负载均衡

概念:

1、概念

调度器:分发用户的请求到一个后端节点

上游服务器(真实服务器):每个真正用来处理用户请求的节点都是一个上游服务器

CIP:(client IP)客户端的IP地址

RIP:(real IP)真实服务器的IP地址

VIP:(virtual IP)虚拟IP,用户所看到的是也是虚拟IP

2、指令

指令:upstream

    作用:定义一个上游服务器组

    格式

        upstream name

            server  上游服务器参数 参数;

            server  上游服务器参数 参数;

            server  上游服务器参数 参数;

       

3、参数

weight=#:设置服务器的权重(数字越大,权重越高)

backup:设置服务器处于备用状态(其他节点出现故障,备用节点才开始工作)

down:设置让一个节点处于离线状态(经常用在维护一个节点的情况下)

max_fails=number:设置连续几次转发失败就认为该节点出现故障,然后就不再向该节点转发用户请求了

fail_timeout=time:和上个参数组合使用,作用是设置等待上游服务器响应超时时间

实验:a.comb.comc.com

1.安装服务

yum -y install nginx

2.建立路径

mkdir -p /work/html_a

mkdir -p /work/html_b

echo "aaaaaaaaa" > /work/html_a/index.html

echo "bbbbbbbb" > /work/html_b/index.html

3.编辑配置文件

cd /etc/nginx/conf.d

vim ab.conf

###########################

 server {

       listen      80;

       server_name a.com;

       location / {

       root /work/html_a;

       }

}

 server {

       listen      80;

       server_name b.com;

       location / {

       root /work/html_b;

       }

}

server {

       listen      80;

       server_name c.com;

       location / {

       proxy_pass http://abc;

       }

}

upstream abc {

            server     127.0.0.1:81;

            server     127.0.0.1:82;

}

server {

       listen      81;

       server_name a.com;

       location / {

       root /work/html_a;

       }

}

server {

       listen      82;

       server_name b.com;

       location / {

       root /work/html_b;

       }

}

########################

4.查错

nginx -t

5.重启服务

systemctl restart nginx

6.添加防火墙端口

firewall-cmd --add-port=80/tcp --permanent

firewall-cmd --reload

7.设置域名静态解析

echo "192.168.10.100 a.com" >> /etc/hosts

echo "192.168.10.100 b.com" >> /etc/hosts

echo "192.168.10.100 c.com" >> /etc/hosts

8.验证

curl a.com

curl b.com

curl c.com

三、反向代理和负载均衡的区别

1、反向代理proxy_pass后跟的是一个具体的IP地址,负载均衡proxy_pass后跟的是集群名;

2、反向代理代理到的是某一个特点的服务器,而负载均衡器是根据算法调度到集群中的某个节点上;

3、反向代理和负载均衡都可以使用模式匹配(正则)。

转载于:https://www.cnblogs.com/renyz/p/11284754.html

你可能感兴趣的文章
理解SQL SERVER中的逻辑读,预读和物理读
查看>>
输入N,打印如图所看到的的三角形(例:N=3,N=4,N=5)1&lt;=N&lt;=26
查看>>
HDU 1010 Tempter of the Bone
查看>>
[转]objc_msgSend 的 ARM 汇编分析
查看>>
Python网络爬虫(1)--url访问及参数设置
查看>>
[转]PT_DENY_ATTACH
查看>>
差分数组
查看>>
51nod1244 莫比乌斯函数之和
查看>>
Spring Boot 相关随笔
查看>>
WPF数据绑定Binding(二)
查看>>
UTC时间格式转换
查看>>
发展城市 BZOJ 3700
查看>>
Yii Framework处理网站前后台文件的方法
查看>>
Ajax 的onreadystatechange事件注意事项.
查看>>
2.redis.3.2 下载,安装、配置、使用 - 2
查看>>
jQuery事件委托
查看>>
移动端元素拖拽事件
查看>>
HDOJ:1058
查看>>
swiper隐藏再显示出现点击不了情况
查看>>
js input radio点击事件
查看>>