需求:源码编译+http监控检测

模块系统环境:CentOS 7.4

软件版本:nginx-1.12.2.tar.gz、nginx_upstream_check_module-master.zip

编译模式:源码编

译编译功能:nginx加入第三方插件后端7层健康检测

一、安装依赖

[root@yjlc-dev soft]# yum install gcc gcc-c++
[root@yjlc-dev soft]# yum -y install pcre-devel openssl-devel patch

二、下载nginx_upstream_check_module模块(健康检查)

[root@yjlc-dev soft]# wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip

[root@www04 ~]# unzip nginx_upstream_check_module-master.zip

三、添加管理进程用户

[root@yjlc-dev soft]# groupadd www
[root@yjlc-dev soft]# useradd -M -g www -s /sbin/nologin www

四、添加nginx_upstream_check_module模块

[root@www04 ~]# tar -zxvf nginx-1.12.2.tar.gz

[root@www04 ~]# cd nginx-1.12.2

[root@www04 nginx-1.12.2]# patch -p1 < ../nginx_upstream_check_module-master/check_1.12.1+.patch    #根据版本来打相应的补丁

编译安装:

./configure \
–user=www \
–group=www \
–prefix=/usr/local/nginx \
–with-http_stub_status_module \
–with-pcre \
–with-http_ssl_module \
–with-http_v2_module \
–with-http_gzip_static_module \
–with-http_realip_module \
–add-module=../nginx_upstream_check_module-master \
–with-ipv6

注意:健康检查模块路径可以写绝对路径

[root@yjlc-dev nginx-1.12.2]# make && make install

五、配置

1、配置环境变量加载到/etc/profile

[root@yjlc-dev nginx-1.12.2]# vi /etc/profile
添加如下内容:export PATH=$PATH:/usr/local/nginx/sbin

[root@yjlc-dev nginx-1.12.2]# source /etc/profile

2、配置日志目录

[root@yjlc-dev nginx-1.12.2]# mkdir /data/wwwlog    //日志目录存放路径
[root@yjlc-dev nginx-1.12.2]# mkdir /data/wwwroot    //站点存放路径(目录为软连接)
[root@yjlc-dev nginx-1.12.2]# mkdir /data/p2p    //源码存放路径,java和前端源码都存放在这个目录下

3、目录权限管理

[root@yjlc-dev nginx-1.12.2]# useradd p2p
[root@yjlc-dev nginx-1.12.2]# echo “Lt9XB1L9Q3” |passwd –stdin p2p
[root@yjlc-dev nginx-1.12.2]# usermod -a -G www p2p    //将用户p2p添加到组www中

[root@yjlc-dev nginx-1.12.2]# chown -R www:www /data/wwwroot/    //站点目录属主、属组为www
[root@yjlc-dev nginx-1.12.2]# chmod -R 770 /data/wwwroot/    //其他用户没有任何权限,属组为读写执行权限,因为会用p2p账户来更新代码
#备注:真实的环境为用户发起请求,用户进程为www,读取/data/p2p下的代码(以一个其他用户权限的模式进行读和可执行)

[root@yjlc-dev nginx-1.12.2]# chown -R p2p:p2p /data/p2p/    //源码目录的属主、属组为p2p

4、测试http模块健康检查 

  upstream sqzone_api{
        #ip_hash; 
        server 192.168.2.251:80; 
        server 192.168.2.254:80;
        check interval=5000 rise=2 fall=4 timeout=10000 type=http;
        check_keepalive_requests 100;
        check_http_send “HEAD / HTTP/1.1\r\nHOST:192.168.2.251\r\n\r\n”;
        check_http_expect_alive http_2xx http_3xx;
  } 
 
  server{ 
      listen 80; 
      server_name 192.168.2.254;
       location / {
          proxy_redirect off; 
          proxy_set_header Host $host; 
          proxy_set_header X-Real-IP $remote_addr; 
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://sqzone_api; 
      } 
  }

健康检查日志如下

最后修改日期: 2019年9月1日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。