nginx源码编译及负载均衡

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

#########################nginx源码编译#######################

所需安装包:nginx-1.14.0.tar.gz

tar zxf nginx-1.14.0.tar.gz
ls ##查看是否解压

cd nginx-1.14.0/src/core/

ls

vim nginx.h        ## 删除掉14行最后的NGINX_VERSION ,这样可以不对外显示你的版本号

在物理机上curl 172.25.45.4 -I  发现server后只有nginx服务名称没有版本号

cd nginx-1.14.0/auto/cc/

ls

vim gcc               ##将172行 CFLAGS="$CFLAGS -g"注释掉

源码编译及安装

cd  nginx-1.14.0

./configure --help  ###查看编译时的帮助命令


yum install gcc -y   ###解决编译过程中需要安装的软件
yum install -y pcre-devel
yum install -y openssl-devel


./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

ls

du -sh       ##查看刚装文件的大小

cd sbin/

pwd

ln -s /usr/local/nginx/sbin/nginx /sbin/              ##做软连接

nginx -t                                      ###检测语法
nginx                                          ##打开nginx
nginx -s stop                            ###关闭nginx
cd /usr/local/nginx/html/       ###nginx的默认发布目录

测试:(测试时要打开nginx)

在网站访问 www.westos.org   www.westos.org/test.html


cd /usr/local/nginx/html/       ###nginx的默认发布目录

vim test.html

########################nginx实现负载均衡######################

cd /usr/local/nginx/conf/             

lscpu                                          ##可以查看主机的cpu数

vim /etc/security/limits.conf

写入:

          nginx        -        nofile                  65536

ngnix -s reload                                           ###重新加载

nginx -t                                              ##检查语法

nginx -s stop                                              ##关闭nginx

useradd -M -d /usr/local/nginx/ nginx      ###建立一个nginx用户

id nginx                                                       ###查看用户nginx

vim nginx.conf ##编辑nginx主配置文件(在此之前添加了一颗cpu,总共两个)

nginx -s reload

测试轮询:for i in {1..10};do curl www.westos.org;done

加上权重后的效果:for i in {1..10};do curl www.westos.org;done

添加ip_hash后的效果((同一个ip访问后端服务器不变):for i in {1..10};do curl www.westos.org;done

###################在nginx中静态添加模块stick#######################

Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route(添加sticky算法后,在用浏览器访问时,其通常会缓存信息,结果不会轮询它是针对浏览器的,更换浏览器后它会改变)

1.客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。

2.后端服务器处理完请求,将响应数据返回给nginx。

3.此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值

4.客户端接收请求,并保存带route的cookie。

5.当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。

1.关闭之前的nginx

nginx -s stop

2.解压tar zxf nginx-1.10.1.tar.gz (nginx稳定版)
解压tar zxf nginx-sticky-module-ng.tar.gz(nginx sticky模块)


3.编译安装(因为之前安装的版本不支持sticky算法,所以要重新源码安装一个nginx版本,为了避免覆盖之前的nginx)

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                              ##必须改变安装路径,不然会覆盖之前的nginx,而且之前选择

                                                                                               ##的参数这次也必须选择(这叫静态添加模块)

make && make install  

4.编辑配置文件加上sticky算法(在这儿为了方便把之前的复制过来)

cd /opt/nginx/conf/

cp /usr/local/nginx/conf/nginx.conf  .

vim nginx.conf

5.在浏览器中测试

/opt/nginx/sbin/nginx  -t     ##新的nginx命令的绝对路径

/opt/nginx/sbin/nginx          ##开启nginx

在浏览器中:www.westos.org    然后按F12

可见浏览器中将后端服务器中的信息缓存,以便下次使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值