Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置

 

【前言】

    项目中总有些研究性的工作来做,记得一年多之前也是在研究Nginx,当时也是苦战了一周左右;时隔一年对它的理解又加深了许多,不过也下了些功夫将它又进行了深入的研究

    虽然网上已经有很多文章在写,并且这种技术已经很成熟,不过根据具体的业务场景应用不同以及自己研究的时候还是踩了许多的坑;还是有写出来一是整理一下自己最近的实验,二是或许会对读者有些帮助。

【研究之路】

    由于这次没有用到集群所以Session的问题不再存在,但是对它的反向代理进行了深入的理解。

    一、概述:

        1、Keepalived和Nginx的简介
          (1)Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。           

          (2)Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

           参考文章: Nginx+Keepalived实现站点高可用

        2、本教程所使用的环境

          (1)操作系统 CentOS 7.0.1406 最小安装版
          (2)所装软件 Keepalived-1.3.4,Nginx-1.10.3(写此篇博客时官网最新的稳定版,建议装最新版本)
          (3)辅助工具 Xsheel-5,WinSCP(非必须使用)
        3、达到的效果图
          (1)本教程所达到效果图

          Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第1张图片

          (2)高校云平台生产环境达到的效果图

 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第2张图片

    二、Nginx安装及相关配置:

        1、Nginx安装前需要的环境:wget、gcc、pcre、openssl、zlib

          (1)wget 用于从外网上下载插件

               ①检查系统中是否已经安装wget,使用命令wget –V 若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第3张图片

               ②若wget未安装则进行安装,安装命令yum -y install wget 

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第4张图片         

          (2)gcc安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境

               ①检查系统中是否已经安装gcc,使用命令gcc –v 若出现下图gcc相关版本描述则说明系统中已经安装gcc 若报系统找不到命令说明gcc未安装

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第5张图片

               ②若gcc未安装则进行安装,安装命令yum install gcc-c++

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第6张图片

                 若出现问题:

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第7张图片

                 则解决方案为:

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第8张图片

                 参考: SSH and Yum don't work in clean CentOS 7

                 若出现问题:

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第9张图片

                 解决方案:清理一下安装包,命令: yum clean all

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第10张图片

                 然后重新执行安装命令: yum install gcc-c++

          (3)PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库;

               ①检查系统中是否已经安装pcre,使用命令man pcre 若出现下图pcre相关描述则说明系统中已经安装pcre 若报系统找不到命令说明pcre未安装

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第11张图片

               ②若pcre未安装则进行安装,安装命令yum install -y pcre pcre-devel

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第12张图片

          (4)OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用; nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库

 

               ①检查系统中是否已经安装openssl,使用命令openssl 若出现下图openssl相关描述则说明系统中已经安装openssl 若报系统找不到命令说明openssl未安装

                

               ②若pcre未安装则进行安装,安装命令yum install -y openssl openssl-devel

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第13张图片

          (5)zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库

               ①检查系统中是否已经安装zlib,使用命令man zlib若出现下图zlib相关描述则说明系统中已经安装zlib 若报系统找不到命令说明zlib未安装

                 Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第14张图片

               ②若zlib未安装则进行安装,安装命令yum install -y zlib zlib-devel

                Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第15张图片

        2、Nginx的安装及配置:

 

          (1)进入一个目录(随便一个目录即可,用来存放下载的Nginx的包,在此以/root目录为例)命令:cd /root

          (2)下载最新稳定版本(目前最新为nginx1.10.3通过官网--- http://nginx.org/download可查看)命令:wget http://nginx.org/download/nginx-1.10.3.tar.gz

              Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第16张图片

          (3)解压nginx的tar包,命令: tar -zxvf ./nginx-1.10.3.tar.gz

              Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第17张图片

          (4)查看是否解压成功,命令: ls

              

          (5)进入刚解压的的目录,命令: cd nginx-1.10.3

              

          (6)进行配置(在此将nginx安装指向/usr/local/nginx-1.10.3/ 目录下,命令: ./configure --prefix=/usr/local/nginx-1.10.3/

              Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第18张图片

          (7)进行编译和安装(在源码的位置,本教程中为 /root/nginx-1.10.3)命令:make && make install

              Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第19张图片

          (8)整个验证、编译、安装过程不应该报任何错误,如果在(6)使用prefix设置了安装目标目录,那么还需要在/etc/profile文件中设置环境变量,在最末尾加入export PATH=/usr/local/nginx-1.10.3/sbin:$PATH (其中的# add nginx path为注释建议加上)命令:vi /etc/profile

             Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第20张图片

              用命令: source /etc/profile 使环境变量生效

             

              用命令export 查看环境变量发现刚设置的Nginx目录没有进去

             Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第21张图片

          (9)检查是否安装成功,命令: nginx –t 若正确如下图,若不正确则会给出相应的错误提示

             

          (10)对Nginx配置文件进行配置,Nginx配置文件的位置: /usr/local/nginx-1.10.3/conf/nginx.conf ,在此用WinSCP进行编辑,也可以用Linux的vi编辑器进行编辑

          (11)将配置文件修改为配置文件在Nginx安装目录下的conf中的nginx.conf,命令: /usr/local/nginx-1.10.3/sbin/nginx -c /usr/local/nginx-1.10.3/conf/nginx.conf

          (12)启动nginx 命令:nginx

               

                相关操作Nginx的命令

                重启Nginx,一般在修改Nginx配置文件后可使用;命令:nginx -s reload

               

                停止Nginx,命令:nginx -s stop

               

                查看Nginx状态,命令: ps -ef | grep nginx

               

          (13)测试,启动Nginx的情况下在外部用浏览器访问刚才在配置文件中配置的地址(本教程中为:192.168.22.224:80)

               Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第22张图片

          (14)若访问不到查看Linux防火墙,确保开放80端口(该端口根据配置文件中配置监听端口所定在本教程中为80端口)或关闭防火墙;为安全起见建议采用开放端口形式

                A.防火墙相关检查相关命令

                   ①查看状态:firewall-cmd --state

                     开启状态---running

                     关闭状态---not runing

                    Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置_第23张图片

                   ②关闭防火墙:service firewalld stop

                   ③打开防火墙: service firewalld start

                B.开放端口相关检查相关命令(确保防火墙是打开情况下再检查端口开放情况才是有意义的)

                   ①查看防火墙中开放端口命令--- iptables -L

                   ②将某个端口(在此以80为例)开放firewall-cmd --zone=public --add-port=80/tcp --permanent

【总结】

      1、亲身经历收获会更多;

      2、根据不同的业务场景来配置也很重要;

      3、遇到问题多去网上查和其他人多交流。

你可能感兴趣的:(●【项目实战】,#,【智能一代云平台】,●,架构之路,#,【Nginx】,Nginx进阶)