Nginx反向代理

Nginx反向代理

 

作用:调度器。实现web负载均衡,web高可用,但还未达到集群高可用(lvs keepavlived)

Nginx反向代理语法格式

http{ upstream  webs  { //定义源服务器组(集群)

server 192.168.2.100;

server 192.168.2.200; }       

server {listen 80;

server_name www.a.com;           //Web主机名

location / {

proxy_pass  http://webs;  //调用集群

root html;} } }

Nginx负载分配方式(目前支持4种)

轮询(默认的):逐一循环调度

weight:指定轮询几率,权重值和访问比率成正比,默认权重为1

ip_hash:根据客户端IP分配固定的后端服务器(相同客户端访问相同服务器)

服务器组主机状态

down:表示当前server暂时不参与负载(宕机)

max_fails:允许请求失败的次数(默认为1)

fail_timeout:max_fails次失败后,暂停提供服务的时间

backup:备份服务器

server 172.16.0.100 max_fails=1 fail_timeout=30;

                         //定义后端服务器,最大失败次数,失败后,停同多少秒

server 172.16.0.201 weight=3; //定义权重,权重越大,访问量越多,此处连续访问3次

server  172.16.0.202 down;    //宕机的服务器

server 172.16.0.203 backup;   //备用服务器

 

示例:Nginx反向代理,实现如下功能:

后端Web服务器两台,可以使用httpd实现;Nginx采用轮询的方式调用后端Web服务器

两台Web服务器的权重要求设置为不同的值;最大失败次数为1,失败超时时间为30秒

步骤一:部署实施后端Web服务器

1)部署后端Web1服务器  [root@web1 ~]# yum  -y  install  httpd

[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html

[root@web1 ~]# systemctl restart httpd

2)部署后端Web2服务器 [root@web2 ~]# yum  -y  install  httpd

[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html

[root@web2 ~]# systemctl restart httpd

步骤二:配置Nginx服务器,添加服务器池,实现反向代理功能

[root@Proxy conf]# cp nginx.conf.default nginx.conf  //还原配置文件

1)修改/usr/local/nginx/conf/nginx.conf配置文件

[root@Proxy ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

http {.. ..

upstream webserver {server 192.168.2.100;

                server 192.168.2.200;  }

server {listen        80;

        server_name  www.tarena.com;

            location / {proxy_pass http://webserver;}}    //调用集群

2)重启nginx服务 [root@Proxy ~]# /usr/local/nginx/sbin/nginx –s reload

3)使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

注意:关闭防火墙

步骤三:配置upstream服务器集群池属性

1)设置失败次数,超时时间,权重

[root@Proxy ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

http {.. ..

upstream webserver {server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;

                server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;   }

server {listen        80;

        server_name  www.tarena.com;

            location / { proxy_pass http://webserver; }}

2)重启nginx服务 [root@Proxy ~]# /usr/local/nginx/sbin/nginx –s reload

3)使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl http://192.168.4.5            //使用该命令多次访问查看效果

4)设置相同客户端访问相同Web服务器

[root@Proxy ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

http {.. ..

upstream webserver {ip_hash;                 //相同的客户端找相同的服务器

                server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;

                server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10; }

.. ..

server {listen        80;

        server_name  www.tarena.com;

            location / {proxy_pass http://webserver;}}

5)重启nginx服务 [root@Proxy ~]# /usr/local/nginx/sbin/nginx –s reload

6)使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl http://192.168.4.5         //使用该命令多次访问查看效果

 

 

 

静态页面——html,mp3,mp4,txt,doc,pdf,doc...

动态页面——java,PHP,python,shell...

语言的难易(从难到易):汇编,c,java,php,python,shell

主流论坛:DiscuzX

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

组合:(nginx和httpd)+PHP,python 

        tomcat+java      jboss+java            weblogic+java

LAMP,linux /apache /MySQL、MariaDB/ php /(python  perl)

LNMP,是主流的企业网站平台之一

L:Linux操作系统              N:Nginx网站服务软件

M:MySQL、MariaDB数据库       P:网站开发语言(PHP、Perl、Python)

用户画像技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值