一、什么是nginx?
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,也是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
二、nginx的优势
1、作为Webserver,Nginx处理静态文件、索引文件,自己主动索引的效率很高
2、作为代理server,Nginx能够实现无缓存的反向代理加速,提高站点执行速度
3、作为负载均衡server,Nginx既能够在内部直接支持Rails和PHP。也能够支持HTTP代理server对外进行服务,同一时候还支持简单的容错和利用算法进行负载均衡
4、在性能方面,Nginx是专门为性能优化而开发的。实现上非常注重效率。
三、这里我们学习nginx的负载均衡功能
负载均衡
负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
RR
按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。
权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
四、实现负载均衡
实验环境:一个内存大于512的虚拟机
首先实现nginx
yum install gcc pcre-devel openssl-devel -y
yum install openssh-clients
tar zxf nginx-1.14.0.tar.gz
cd nginx-1.14.0/src/core
vim nginx.h
将nginx的版本清除,防止恶意攻击
cd nginx-1.14.0/auto/cc/
vim gcc
不进行调试,直接运行
#CFLAGS="$CFLAGS -g"
cd nginx-1.14.0
./configure --help
对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make
make install
cd /usr/local/nginx/sbin
ln -s /usr/local/nginx/sbin/nginx /sbin/
nginx -t检测nginx的语法是否错误
nginx开启
nginx -s stop表示关闭
nginx -s reload表示刷新
cd /usr/local/nginx/html 发布目录
并发处理的连接数
vim /etc/security/limits.conf
sysctl -a | grep file(查看系统最大开启的文件数)
nginx - nofile 78332
useradd -M -d /usr/local/nginx/ nginx
id nginx
yum install httpd
cd /usr/local/nginx/conf
vim nginx.conf
#user nobody;
user nginx;
worker_processes 1;
http {
upstream westos{
#哈希,表示长连接,不断开连接
#ip_hash;
server 172.25.33.2:80 weight=2;
server 172.25.33.3:80;
#当后端服务器瘫痪,主机去响应服务
server 127.0.0.1:80 backup;
}
server {
listen 80;
server_name www.westos.org;
location / {
proxy_pass http://westos;
}
}
}
主机测试
功能一、实现负载均衡
功能二、实现哈希算法功能
功能三、权重的实现
rhcs套件
实现nginx的高可用
pacemaker + nginx(psch)
nginx-1.10.1.tar.gz
nginx-sticky-module-ng.tar.gz
tar zxf nginx-sticky-module-ng.tar.gz
tar zxf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-sticky-module-ng
make
make install
cd /opt/nginx/conf/
cp /usr/local/nginx/conf/nginx.conf .
vim nginx.conf
/opt/nginx/sbin/nginx
/opt/nginx/sbin/nginx -t
http {
upstream westos{
#ip_hash;
sticky;
server 172.25.33.2:80;
server 172.25.33.3:80;
# server 127.0.0.1:80 backup;
}
浏览器测试:
浏览器输入www.westos.org 点击F12查看长连接的相关信息