Nginx是一个高性能的静态资源、反向代理服务器,现在越来越多的互联网公司使用Nginx托管网站,还有一个出名的静态资源服务——Apache,在Nginx没有出现之前Apache用的人很多,之后后者功能及性能更加优秀就被越来越多的人选择了。
Nginx相较于Apache在具有反向代理的功能,同时在IO方面性能卓越。两者的详细区别可以参考以下两篇博客:
- https://www.cnblogs.com/changning0822/p/7844004.html
- https://blog.51cto.com/u_11954248/1963817
开始正文,这篇文章主要总结Nginx在负载均衡、反向代理、缓存等方面。
代理、正向代理、反向代理
先说代理,代理就是加个中间层,现实中就是中介,这个中介可以帮客户(Client)做事情。基于代理可以做很多事情,缓存就是常见的应用场景。
关于正向代理和反向代理详细讲解的文章:
https://www.cnblogs.com/taostaryu/p/10547132.html
nginx负载均衡
负载均衡(load balance)是指把一块业务负载分担到其他服务器,这样通过横向扩展的方式能提到系统的吞吐量和负载。
nginx负载均衡是一种简单的负载均衡技术,所有的请求打到nginx,然后nginx又发送的所有的响应,这种方式在吞吐量大的业务场景会成为业务系统瓶颈。解决的办法是使用LVS(Linux virtual Server),这种方式通过网络底层协议进行负载均衡,可以有效提高负载均衡器的吞吐量(LVS这是服务器端开发一块大的知识,因这篇文章总结nginx不再详细介绍)。
nginx单机负载均衡
实验环境:
- centos7.6
- nginx 1.5+
1、实验准备,三台服务器
ip及主机:
10.0.0.10 lb01 作为LB服务器
10.0.0.20 web01 作为web服务器1
10.0.0.21 web02 作为web服务器2
2、软件安装
在三台服务器都安装nginx,最简单的方式通过yum安装,当然也可以编译安装。
这里使用yum安装。
yum install -y nginx
安装完后还需要了解nginx程序的一些信息:
- 程序配置文件: /etc/nginx
- 常用配置文件夹:/etc/nginx/conf.d
- 日志路径:/var/log/nginx
- nginx主配置文件,这个文件通常,通常在/etc/nginx下,名称是nginx.conf
3、配置两台web服务器(web01,web02)
这两个web服务器不一定是web服务器,也可以是代理后端的反向代理服务器。
3.1 启动服务
对三台服务器都做这个操作。
# 启动服务
systemctl start nginx
# 或者, 前提环境变量配置好
nginx
3.2 设置静态网页,以区分负载均衡代理的静态网页
# nginx默认安装后,静态文件夹路径为 /usr/share/nginx/html
# 切换到静态文件所在目录
cd /usr/share/nginx/html
# 把默认文件改为有标识内容
echo "<h1>10.0.0.20 web01</h1>
" > index.html
3.3 测试
在浏览器中访问能显示“10.0.0.20 web01”。
3.4 web02配置同上
4、配置负载均衡服务器(lb01)
4.1 在/etc/nginx/conf.d文件夹中修改default.conf
# 资源池