nginx安装以及实现高可用负载均衡
概念
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
在高连接并发的情况下,Nginx是Apache服务器不错的替代品。
正向代理
正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端必须要进行一些特别的设置才能使用正向代理。
正向代理的用途:
- 访问原来无法访问的资源,如 Google
- 可以做缓存,加速访问资源
反向代理
反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
反向代理是一种可以集中地调用内部服务,并提供统一接口给公共客户的 Web 服务器。
反向代理实际运行方式是指以代理服务器来接受连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理的作用:
- 保证内网的安全。隐藏后端服务器的信息,屏蔽黑名单中的 IP,限制每个客户端的连接数。
- 提高可扩展性和灵活性。客户端只能看到反向代理服务器的 IP,这使你可以增减服务器或者修改它们的配置。
- 缓存。直接返回命中的缓存结果
- 静态内容直接返回:HTML/CSS/JS、图片、视频等等
- 负载均衡,通过反向代理服务器来优化网站的负载
正向代理:proxy和client同属一个LAN,对server透明
反向代理:proxy和server同属一个LAN,对client透明
实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。
安装
第一步,安装pcre
1.1、wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
1.2、解压文件 tar -xzvf 路径
1.3、pcre主目录执行命令 ./configure
可能遇到情况=1.3.1、没有c++支持
安装c++支持:yum install -y gcc gcc-c++
1.4、完成后、回到pcre目录下执行 make && make install
1.5、查看版本 pcre-config --version
第二步,安装其他依赖 :
zlib openssl yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装nginx
安装nginx
1、解压nginx-xx.tar.zg包
2、进入解压目录,执行./configure
3、make && make install
4、在/usr/local/nginx/sbin 目录下执行 ./nginx
注意:开放端口或关闭防火墙默认80端口
启动后在浏览器访问
nginx常用命令
查看版本 以下命令都是在/usr/local/nginx/sbin 目录下执行
./nginx -v
启动nginx : ./nginx
关闭nginx: ./nginx -s stop
重加载nginx: ./nginx -s reload
nginx结合keepalive
nginx结合keepalive可以实现nginx的高可用
安装keepalive
yum install -y popt-devel
cd /usr/local/src
tar zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/
make && make install
新建检查nginx脚本
vi /root/check_nginx.sh
if [ "$(ps -ef | grep "nginx:master process"| grep -v grep )" == "" ]
then
/etc/init.d/keepalived stop
else
echo "nginx is running"
fi
chmod +x /root/check_nginx.sh
修改配置文件
修改两台keepalived服务器配置文件
我这两台服务器ip分别是 192.168.110.129, 192.168.110.130
执行:vi /etc/keepalived/keepalived.conf
192.168.110.129
192.168.110.130
启动keepalived
centos6
service keepalived start
centos8
systemctl start keepalived
测试
关掉主的nginx,看到vip漂移到了从,且仍然能通过虚拟IP均衡地访问web服务器