使用NFS配置pv、pvc

1
2
3
4
{root@centos-master pv]# cat /etc/exports | grep /opt/zkdata/zk-data-
/opt/zkdata/zk-data-0 *(rw,no_root_squash,no_all_squash,sync)
/opt/zkdata/zk-data-1 *(rw,no_root_squash,no_all_squash,sync)
/opt/zkdata/zk-data-2 *(rw,no_root_squash,no_all_squash,sync)

创建k8spv:pv.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
apiVersion: v1
kind: PersistentVolume
metadata:
name: datadir-zk-0
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
nfs:
path: /opt/zkdata/zk-data-0
server: x.x.x.x
readOnly: false
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: datadir-zk-1
spec:
capacity:
storage: 10Gi
accessModes:
- RReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
nfs:
path: /opt/zkdata/zk-data-1
server: x.x.x.x
readOnly: false
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: datadir-zk-2
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
nfs:
path: /opt/zkdata/zk-data-2
server: x.x.x.x
readOnly: false

kubectl kubectl create -f pv.yaml

1
2
3
4
5
[root@centos-master pv]# kubectl get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE
datadir-zk-0 10Gi RWX Recycle Available slow 25s
datadir-zk-1 10Gi RWX Recycle Available slow 25s
datadir-zk-2 10Gi RWX Recycle Available slow 25s

安装依赖包

系统:centos7.4
crt
tracker和storage节点建议部署分别部署

1
2
yum install -y libevent
yum install gcc-c++ openssl-devel pcre-devel zlib-devel

下载需要的包
https://github.com/happyfish100
nginx官网

1
2
3
4
fastdfs5.11.zip
fastdfs-nginx-module.zip
libfastcommon.zip
nginx-1.12.2

安装

libfastcommon

首先第一步是安装libfastcommon
unzip libfastcommon-master.zip
解压成功后进入目录看一下压缩包的文件:
dfs
解压完成后就可以进行编译安装了,执行./make.sh && ./make.sh install
crt
至此libfastcommon就已经安装成功了,但注意一下上图中红色框标注的内容,libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软链接

1
2
3
4
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

安装fastdfs

unzip fastdfs5.11.zip
解压完成后进入目录 fastdfs-5.11,执行

1
2
3
4
5
./make.sh  && ./make.sh  install
cd /etc/fdfs/
[root@hjlc-storage-nodeA fdfs]# cp client.conf.sample client.conf
[root@hjlc-storage-nodeA fdfs]# cp storage.conf.sample storage.conf
[root@hjlc-storage-nodeA fdfs]# cp tracker.conf.sample tracker.conf

crt

Tracker服务配置

mkdir -p /home/hjlc/app/fastdfs/fastdfs_tracker
编辑/etc/fdfs目录下的tracker.conf配置文件

1
2
3
4
disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/home/hjlc/app/fastdfs/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080这个不需要了

为启动脚本创建软引用

1
2
3
4
5
6
7
[root@hjlc-storage-nodeA fastdfs]# ln -s /usr/bin/fdfs_trackerd /usr/local/bin
[root@hjlc-storage-nodeA fastdfs]# ln -s /usr/bin/stop.sh /usr/local/bin
[root@hjlc-storage-nodeA fastdfs]# ln -s /usr/bin/restart.sh /usr/local/bin
启动tracker服务
root@hjlc-storage-nodeA fastdfs]# service fdfs_trackerd start
Reloading systemd: [ OK ]
Starting fdfs_trackerd (via systemctl): [ OK ]

fastdfs_tracker中就可以看到启动后新生成的data和logs目录,tracker服务的端口也应当被正常监听,最后再通过netstat命令查看一下端口监听情况:
crt
al
确认tracker正常启动后可以将tracker设置为开机启动,打开/etc/rc.d/rc.local并在其中加入以下配置:
service fdfs_trackerd start

Storage服务配置

先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:
mkdir /home/hjlc/app/fastdfs/fastdfs_storage
mkdir /home/hjlc/app/fastdfs/fastdfs_storage_data

接下来修改/etc/fdfs目录下的storage.conf配置文件

1
2
3
4
5
6
7
8
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/home/hjlc/app/fastdfs/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/home/hjlc/app/fastdfs/fastdfs_storage_data #实际文件存储路径
tracker_server=172.16.1.182:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功
http.server_port=8888 #设置 http 端口号不需要

配置完成后同样要为Storage服务器的启动脚本设置软引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
启动Storage服务
service fdfs_storaged start
如果启动成功,/home/hjlc/app/fastdfs/fastdfs_storage中就可以看到启动后新生成的data和logs目录,端口23000也应被正常监听,还有一点就是文件存储路径下会生成多级存储目录,那么接下来看看是否启动成功了:
crt
crt
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
crt
ACTIVE 字样即可说明storage服务器已经成功登记到了tracker服务器
开机启动,打开/etc/rc.d/rc.local并将如下配置追加到文件中:
echo “service fdfs_storage start” >> /etc/rc.d/rc.local

上传测试

编辑/etc/fdfs目录下的client.conf 文件
base_path=/home/hjlc/app/fastdfs/fastdfs_tracker #tracker服务器文件路径
tracker_server=172.16.1.182:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=8080 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

然后通过执行客户端上传命令尝试上传:

[root@hjlc-storage-nodeA ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/123.jpg
group1/M00/00/00/rBABtlqwYLWATj7XAABOLQixhsQ490.jpg

此时发现并不能访问,因为FastDFS目前已不支持http协议,我们在FastDFS 4.0.5的版本更新日志中可以看到这样一条信息:
使用FastDFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,这样做最大的好处就是提供了HTTP服务并且解决了group中storage服务器的同步延迟问题

fastdfs-nginx-module+nginx安装

在安装nginx之前需要先安装一些模块依赖的lib库

1
yum -y install pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

storage nginx
首先是为storage服务器安装nginx,首先下载nginx和fastdfs-nginx-module的安装包
tar -zxvf nginx-1.12.2.tar.gz
unzip fastdfs-nginx-module.zip

解压成功后就可以编译安装nginx了,进入nginx目录

1
2
3
root@hjlc-storage-nodeA nginx-1.12.2]# ./configure --prefix=/home/hjlc/app/nginx --add-module=/root/fastdfs-nginx-module-master/src

make && make install

接下来要修改一下nginx的配置文件
server {
listen 9090;
server_name img.xxxx;
location ~/group1/M00 {
root /home/hjlc/app/fastdfs/fastdfs_storage_data;
ngx_fastdfs_module;
}
}
然后进入FastDFS的解压目录~/ fastdfs-5.11目录下的conf目录,将http.conf和mime.types拷贝到/etc/fdfs目录下
[root@hjlc-storage-nodeA fastdfs-5.11]# cp conf/http.conf /etc/fdfs/
[root@hjlc-storage-nodeA fastdfs-5.11]# cp conf/mime.types /etc/fdfs/
把fastdfs-nginx-module解压目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
[root@hjlc-storage-nodeA ~]# cp fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
编辑刚拷贝的这个mod_fastdfs.conf文件了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
base_path=/home/hjlc/app/fastdfs/fastdfs_storage #保存日志目录
tracker_server=172.16.1.182:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/home/hjlc/app/fastdfs/fastdfs_storage_data # 存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1
设置了group_count = 3,接下来就需要在文件尾部追加这3个group setting:
group_count = 3

# group settings for group #1
# since v1.14
# when support multi-group on this storage server, uncomment following section
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/hjlc/app/fastdfs/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/hjlc/app/fastdfs/fastdfs_storage_data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/home/hjlc/app/fastdfs/fastdfs_storage_data

接下来还需要建立 M00 至存储目录的符号连接:

1
2
3
4
5
ln  -s  /home/hjlc/app/fastdfs/fastdfs_storage_data/data  /home/hjlc/app/fastdfs/fastdfs_storage_data/data/M00
[root@hjlc-storage-nodeA ~]# /home/hjlc/app/nginx/sbin/nginx -c /home/hjlc/app/nginx/conf/nginx.conf -t
ngx_http_fastdfs_set pid=21138
nginx: the configuration file /home/hjlc/app/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/hjlc/app/nginx/conf/nginx.conf test is successful

节点2重复一遍storage服务安装和fastdfs-nginx-module+nginx安装即可,然后在安装一台Nginx发现代理服务器配置upstream代理,这我使用的SLB服务器就直接监听nodeA和nodeB的9090端口
crt

1
netstat -n|awk '/^tcp/{++S[$NF]}END{for (a in S) print a,S[a]}'    #得到当前服务器的所有TCP连接数状态

修改/etc/sysctl.conf文件参数

1
2
3
4
vim /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 #修改系統默认的TIMEOUT时间

TIME_WAIT 的默认时间是 2倍的 MLS,即 240 秒,最低为 30 秒,最高为 300 秒。MLS 是 TCP 片在网上的最长存活时间。TIME_WAIT的主要作用是保证关闭的TCP端口不立即被使用。因为当网络存在延迟时,可能当某个端口被关闭后,网络中还有一些重传的TCP片在发向这个端口,如果这个端口立即建立新的TCP连接,则可能会有影响。所以使用2倍的MSL时间来限制这个端口立即被使用。

内容原创,禁止转载!

效果图如下:

jenkins

自定义警报提示

自定义告警脚本在zabbix_server.conf中配置,默认为: AlertScriptsPath=/usr/lib/zabbix/alertscripts
警报脚本在Zabbix服务器上执行。 这些脚本位于服务器配置文件中定义的目录中AlertScriptsPath.

这是一个示例警报脚本:

1
2
3
4
5
#!/bin/bash
to=$1
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" "${to}" >>/tmp/mail.log 2>&1

Zabbix-Server 在调用脚本的时候,会传递三个变量参数给脚本作为位置参数:$1, $2, $3。 其中:$1 表示收件人,$2 表示主题,$3 表示内容。

配置

选择 报警媒介类型,创建自定义告警方式,
Type 选择 Script,Script name 指定自定义的告警脚本,
Script parameters 一般设置如下三个:

  • {ALERT.SENDTO}
  • {ALERT.SUBJECT}
  • {ALERT.MESSAGE}
    jenkins
    其他配置省略
    shell+钉钉机器人脚本
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #!/bin/bash
    #date:2017-12-14
    #by wang.t
    #Revision: 1.0
    # Email:837479851@qq.com
    # Website:idcsec.com
    LOGFILE="/tmp/dingding.log"
    :>"$LOGFILE"
    exec 1>"$LOGFILE"
    exec 2>&1

    url="http://127.0.0.1/zabbix"
    CURL="/usr/bin/curl"
    to=$1
    subject=`echo $2 | tr '\r\n' '\n'`
    body=`echo $3 | tr '\r\n' '\n'`
    ${CURL} 'https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXX' \
    -H 'Content-Type: application/json' \
    -d """
    {
    \"msgtype\": \"markdown\",
    \"markdown\": {
    \"title\":\"${subject}@18******5\",
    \"text\": \"${body}\"
    },
    \"at\": {
    \"atMobiles\": [
    \"18*******5\",
    ],
    \"isAtAll\": false
    }
    }"""

Github:https://github.com/Hwting/script/blob/master/zabbix_dingding.sh
测试测试 zabbix_dingding.sh “” 2 3

动作设置

到配置-》动作-》创建动作(触发器)

zabbix报警消息模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}

告警IP:{HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

持续时间:{EVENT.AGE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}
`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}

告警IP:{HOST.IP}

恢复时间:{EVENT.DATE}{EVENT.RECOVERY.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

持续时间:{EVENT.AGE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

安装jenkins,mysql:省略

安装sonar

mysql创建数据库user并授权(测试可以使用自带数据库)

1
2
3
4
>CREATE DATABASE sonarqube SET utf8 COLLATE utf8_general_ci;
> CREATE USER 'sonar’@'%' IDENTIFIED BY 'password';
> GRANT all privileges ON sonarqube.* TO sonar’@‘%' IDENTIFIED BY 'password';

> flush privileges;

下载安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.zip
unzip sonarqube-6.7.zip -d /usr/local/
cd /usr/local/sonarqube-6.7/
vim conf/sonar.properties /配置文件
sonar.web.host=0.0.0.0
sonar.web.port=9000
sonar.jdbc.username=sonar
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
./bin/linux-x86-64/sonar.sh start 启动sonar 需要使用非root启动
中文插件下载解压到下目录
wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.18/sonar-l10n-zh-plugin-1.18.jar
/usr/local/sonarqube-6.7/extensions/plugins/
./bin/linux-x86-64/sonar.sh restart

安装sonar-runner

下载安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
unzip sonar-runner-dist-2.4.zip -d /usr/local/
cd /usr/local/sonar-runner-dist-2.4
vim conf/sonar-runner.properties
sonar.host.url=http://172.18.8.32:9000
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admi
配置环境配置
vim /etc/profile
export SONAR_HOME=/usr/local/sonarqube-6.7
PATH=$PATH:/usr/local/sonar-runner-2.4/bin
export PATH
source /etc/profile
测试ok
sonar-scanner -h

1、思科交换机snmp配置

1
2
3
4
5
6
7
8
9
10
建立snmp团体,名称为public,权限为只读
(config)#snmp-server community public ro
允许路由器将所有类型SNMP Trap发送出去
(config)#snmp-server enable traps
设置主机172.16.0.21接受交换机所发送过来的SNMP Trap 信息
(config)#snmp-server host 172.16.0.21 version 2c public
使用loopback0接口的IP地址作为SNMP Traps发送源地址,这个随便可以不用。
(config)#snmp-server trap-source loopback0
zabbix执行测试
snmpwalk -v 2c -c public 172.16.0.1

配置发现规则 这里使用深信服设备

配置 → 模板→点击适当模板行中的发现
zabbix
点击屏幕右上角的创建发现规则
填写发现规则表单,具体细节如下面的屏幕截图所示
zabbix

1
2
3
4
5
6
名称 Network interfaces
类型 SNMPv2 agent
键值 ifDescr
SNMP OID discovery[{#SNMPVALUE},IF-MIB::ifDescr]
SNMP community {$SNMP_COMMUNITY}
端口 161

方法一

通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root';
+------------------------+
| concat('KILL ',id,';') |
+------------------------+
| KILL 3101; |
| KILL 2946; |
+------------------------+
2 rows in set (0.00 sec)

mysql>select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';
Query OK, 2 rows affected (0.00 sec)

mysql>source /tmp/a.txt;
Query OK, 0 rows affected (0.00 sec)

方法二

杀掉当前所有的MySQL连接

1
mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill

杀掉指定用户运行的连接,这里为Mike

1
mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill

方法三

通过SHEL脚本实现
杀掉锁定的MySQL连接

1
2
3
4
5
#!/bin/bash
for id in `mysqladmin processlist | grep -i locked | awk '{print $1}'`
do
mysqladmin kill ${id}
done

方法四

通过Maatkit工具集中提供的mk-kill命令进行

  • 杀掉超过60秒的sql
    mk-kill -busy-time 60 -kill
  • 如果你想先不杀,先看看有哪些sql运行超过60秒
    mk-kill -busy-time 60 -print
  • 如果你想杀掉,同时输出杀掉了哪些进程
    mk-kill -busy-time 60 -print –kill

HTTP/2优点

  • 采用二进制格式传输数据,而非文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。

  • 对消息头进行压缩传输,能够节省消息头占用的网络的流量,而 HTTP 1.1 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源,头压缩能够很好的解决该问题。

  • 多路复用,就是多个请求都是通过一个 TCP 连接并发完成, HTTP 1.1 虽然通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求,同时流还支持优先级和流量控制。

  • 服务器推送,服务端能够更快的把资源推送给客户端,例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求,当客户端需要的时候,它已经在客户端了。

HTTP/2站点的优势

  • 提升网站访问速度。
  • 降低服务器压力。
  • 部分替代异步加载的使用。
  • 保护网站安全。

    nginx配置http2

    默认编译的 Nginx 并不包含 h2 模块,我们需要加入参数来编译。Nginx 1.9 开发版及以上版本源码需要自己加入编译参数。
    以下是平滑升级模块过程
    最后使用源码自带升级命令:make upgrade自动完成平滑
    根据需求添加编译模块,不过只需要执行到make 不要执行make install!
    http2需要openss1.0.2e以上版本
    下载openssl
    1
    wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz

这里查看我当前nginx编译参数

1
2
/usr/local/nginx/sbin/nginx  -V
configure arguments: --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module

到nginx源码下重新编译nginx,解压openssl指定openssl源码路径 –with-openssl=../openssl-1.0.2m
加上 –with-http_realip_module –with-http_v2_module –with-openssl=../openssl-1.0.2

1
2
3
./configure  --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_v2_module   --with-openssl=../openssl-1.0.2m
#执行到make 不要执行make install
make #执行make 但不要执行make install

备份二进制文件

1
mv  /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.back

期间nginx并不会停止服务
拷贝新编译的二进制文件

1
cp objs/nginx /usr/local/nginx/sbin/

在源码目录下执行平滑重新加载配置命令

1
2
3
4
5
6
7
8
nginx-1.12.0]# make upgrade
usr/local/nginx/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

验证

1
2
3
4
5
6
nginx-1.12.0]#/usr/local/nginx/sbin/nginx  -V
nginx version: Microsoft-IIS/1.12.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.2m 2 Nov 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_v2_module --with-openssl=../openssl-1.0.2m

nginx
http2demo:https://http2.akamai.com/demo