CentOS7.4—nginx應用之統計與訪問控制
目錄:
第一部分:準備工作
第二部分:搭建nginx
第三部分:配置nginx的統計功能
第四部分:配置nginx的驗證功能(訪問控制)
第一部分 實驗環境
一:服務器:Linux系統—CentOS 7.4;
IP地址:192.168.80.10
客戶端:以WIN7為例,測試驗證結果,與服務器在同一網段;
IP地址:192.168.80.2
二:準備壓縮包
三:將防火墻與selinux關閉
第二部分 安裝Nginx服務
一:安裝編譯工具與插件
[root@localhost ~]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
zlib-devel[root@localhost ~]# useradd -M -s /sbin/nologin nginx //創建nginx用戶
-M:不為用戶建立並初始化宿主目錄
二:配置(自定義個性化配置)
[root@localhost ~]# tar xzvf nginx-1.13.9.tar.gz -C /opt/ //解壓nginx安裝包到opt目錄
[root@localhost ~]# cd /opt/nginx-1.13.9/
[root@localhost nginx-1.13.9]# ./configure \ //個性化配置
--prefix=/usr/local/nginx \ //指定安裝目錄
--user=nginx \ //指定用戶
--group=nginx \ //指定組
--with-http_stub_status_module //日誌統計模塊
三:編譯與安裝
[root@localhost nginx-1.13.9]# make && make install //編譯安裝
[root@localhost nginx-1.13.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
//優化執行路徑(執行程序文件的原路徑不在PATH環境變量中,做個軟鏈接使其可以執行)
[root@localhost nginx-1.13.9]# nginx //啟動nginx服務
[root@localhost nginx-1.13.9]# killall -1 nginx //安全重啟
[root@localhost nginx-1.13.9]# killall -3 nginx //停止服務
四:制作管理腳本
[root@localhost nginx-1.13.9]# vi /etc/init.d/nginx
#!/bin/bash
chkconfig: 35 99 20
description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
保存退出
[root@localhost nginx-1.13.9]# chmod +x /etc/init.d/nginx //添加執行權限
[root@localhost nginx-1.13.9]# chkconfig --add nginx //將nginx加入到系統服務
五:編輯主配置文件
[root@localhost nginx-1.13.9]# vi /usr/local/nginx/conf/nginx.conf
編輯以下內容:
user nginx nginx; //運行用戶
error_log logs/error.log info; //錯誤日誌路徑
-----日誌級別:debug info notice warn error crit //向上記錄(從低到高)-----
events {
use epoll; //新增此行 默認使用select/poll
worker_connections 10240; //表示1個工作進程允許10240個連接。
}
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘ //定義日誌格式 把前面的#號去掉
保存退出
[root@localhost ~]# service nginx restart //重啟nginx服務
[root@localhost ~]# netstat -anpt | grep 80 //查看80端口運行狀態
[root@localhost ~]# ulimit –n //查看和更改系統本地打開資源數
[root@localhost ~]# ulimit -n 65500 >> /etc/rc.local
六:win7下驗證
瀏覽器訪問:http://192.168.80.40
//nginx搭建成功
第三部分:配置統計功能
一:編輯主配置文件
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
在server模塊裏的error_page上面增加以下內容:
location ~ /status {
stub_status on;
access_log off;
}
保存退出
二:重啟服務
[root@localhost ~]# service nginx restart //重啟nginx服務
[root@localhost ~]# netstat -anpt | grep 80 //查看80端口運行狀態
[root@localhost ~]# cat /usr/local/nginx/logs/access.log //查看產生日誌
三:win7下驗證
瀏覽器訪問:http://192.168.80.40/status
//驗證成功:當前的活動連接數,已處理的連接數,成功的TCP握手次數,已處理的請求數。
第四部分:配置nginx的驗證功能(訪問控制)
一:創建訪問帳號
[root@localhost ~]# yum install httpd-tools –y
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db jack //創建帳號,輸入密碼
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db //配置權限
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db //配置屬主
二:編輯主配置文件
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
//編輯以下內容:
location / {
root html;
index index.html index.htm;
allow 192.168.80.0/24;
deny all;
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
}
保存退出
[root@localhost ~]# nginx –t //檢查語法錯誤
[root@localhost ~]# service nginx restart //重啟服務
三:win7下驗證
瀏覽器訪問:192.168.80.40,需要驗證才能訪問
//驗證成功
CentOS7.4—nginx應用之統計與訪問控制