Nginx是俄罗斯人Igor Sysoev编写的轻量级Web服务器,它不仅是一个高性能的静态HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 高并发处理能力强、擅长处理静态请求、反向代理、均衡负载。

1.下载安装nginx

Nginx官方网址 http://nginx.org/en/download.html 我用的是这个,在安装Nginx前,最好先配置好Linxu系统,并克隆两台以上虚拟机,后面的反向代理和负载均衡要用到。 采用源码编译的方式安装Nginx! (1)安装Nginx依赖的库

yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel vim -y

(2)创建存放源文件的文件夹

cd /opt # 进入opt目录下

mkdir apps # 创建apps目录,用于存放源文件以及解压后的文件

(3)通过Xftp上传nginx-1.16.1.tar.gz文件到Linux虚拟机的opt/apps目录下 (4)解压 Nginx压缩包

cd /opt/apps

tar -zxvf nginx-1.16.1.tar.gz # 解压

(5)配置configure

#进入/opt/apps/nginx-1.16.1目录下

cd /opt/apps/nginx-1.16.1

#首先创建/var/tmp/nginx/client目录

mkdir –p /var/tmp/nginx/client

#执行配置命令

./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid

(6)编译

make

(7)安装

make install

(8)启动

cd /opt/nginx/sbin

./nginx

启动nginx进程后,在浏览器中输入虚拟机的ip地址

2.反向代理之负载均衡

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。这个时候,对于客户端来说,感觉不到内部目标服务器的存在。

反向代理的作用: 1.保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网. 2.负载均衡,通过反向代理服务器来优化网站的负载.

所谓的负载均衡(Load Balancing),就是将对请求的处理分摊到多个操作单元上进行。这个均衡是指在大批量访问前提下的一种基本均衡,并非是绝对的平均。对于 Web 工程中的负载均衡,就是将相同的 Web 应用部署到多个不同的 Web 服务器上,形成多个 Web 应用服务器。当请求到来时,由负载均衡服务器负责将请求按照事先设定好的比例向 Web 应用服务器进行分发,从而增加系统的整体吞吐量。

我准备三台虚拟机,一台是作为Nginx服务器,ip地址为192.168.1.15,另外两台作为web服务器,是原来建的,ip地址分别为192.168.1.150和192.1681.1.22。

upstream rss{

server 192.168.1.150:888 weight=1;#端口可加可不加,我的150的80端口被占用了

server 192.168.1.22:80 weight=2;

}

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

# root html;

#index index.html index.htm;

proxy_pass http://rss/;

}

}

配置文件最好能读懂,知到哪一步在做什么,这样才不会错。

把http块下的keepalive_timeout设置为0,便于看出负载切换的效果

keepalive_timeout 0;

退出编辑后

service nginx restart#重启nginx

另外两台web服务器,只需下载httpd

yum install httpd -y

再编辑一下/var/www/html/index.html

cd /var/www/html

vim index.html

#分别写入

from 192.168.1.22

from 192.168.1.150

便于观察。 启动两台虚拟机上的httpd服务

service httpd start

浏览器输入本机ip192.168.1.15,发现页面输出为from 192.168.1.22or150.多次刷新还会切换。 说明反向代理、负载均衡配置成功。

3.负载均衡策略

轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB…

# 默认负载权重是一样的

upstream rss{

server 192.168.1.150;

server 192.168.1.22;

}

加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB…

# 加权轮训

upstream rss{

server 192.168.1.22 weight=1;

server 192.168.1.150 weight=2;

}

ip_hash:nginx会让相同的客户端ip请求相同的服务器。

upstream rss{

server 192.168.1.22;

server 192.168.1.150;

ip_hash;

}

热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB…

upstream rss{

server 192.168.1.22;

server 192.168.1.150 backup; #热备

}

两个重要的负载均衡配置的状态参数

max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。fail_timeout:在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

upstream rss {

server 192.168.218.52 weight=2 max_fails=2 fail_timeout=2;

server 192.168.218.53 weight=1 max_fails=2 fail_timeout=1;

#server 服务器的ip 权重 最大失败次数 暂停服务的时间

}

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: