(一) 軟體介紹由俄羅斯人lgor Sysove開發,為開源軟體。支持高併發:支持幾萬併發連接(特別是靜態小文件業務環境) 資源消耗少:在3萬併發連接下開啟10個Nginx線程消耗記憶體不到200M 支持非同步網路I/O事件模型epoll(Linux2.6+) apache(select)功能介紹 1. ...
(一) 軟體介紹
由俄羅斯人lgor Sysove開發,為開源軟體。
支持高併發:支持幾萬併發連接(特別是靜態小文件業務環境)
資源消耗少:在3萬併發連接下開啟10個Nginx線程消耗記憶體不到200M
支持非同步網路I/O事件模型epoll(Linux2.6+) apache(select)
功能介紹
1.作為web伺服器軟體(處理用戶訪問靜態請求)
2.反向代理或負載均衡服務
3.前端業務數據緩存服務
Nginx軟體模型特點
apache使用select 模型 逐一查找
nginx 使用epoll 模型 檢索後查找
(二) 安裝Nginx軟體
1. 依賴安裝方法:先安裝相關依賴包
pcre-devel: perl語言正則表達式相容軟體包
openssl-devel:使系統支持https方式
[root@web02 ~]# yum install -y pcre-devel openssl-devel [root@web02 ~]# cd /server/tool/ [root@web02 tool]# wget http://nginx.org/download/nginx-1.16.1.tar.gz 官方網站下載軟體 [root@web02 tool]# tar zxf nginx-1.16.1.tar.gz 解壓文件 [root@web02 tool]# ll total 1016 drwxr-xr-x. 8 1001 1001 4096 Aug 13 20:51 nginx-1.16.1 -rw-r--r--. 1 root root 1032630 Aug 14 01:01 nginx-1.16.1.tar.gz
2. 創建管理nginx管理用戶
[root@web02 nginx-1.16.1]# useradd www -s /sbin/nologin -M
3. 進行編譯安裝nginx軟體 (/server/tool/nginx-1.16.1/解壓文件目錄下進行)
[root@web02 nginx-1.16.1]# ./configure --prefix=/app/nginx-1.16.1 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module [root@web02 nginx-1.16.1]# make && make inistall [root@web02 nginx-1.16.1]# cd /app/nginx-1.16.1/ [root@web02 nginx-1.16.1]# ll total 16 drwxr-xr-x. 2 root root 4096 Aug 19 16:34 conf drwxr-xr-x. 2 root root 4096 Aug 19 16:34 html drwxr-xr-x. 2 root root 4096 Aug 19 16:34 logs drwxr-xr-x. 2 root root 4096 Aug 19 16:34 sbin
4. 創建軟鏈接
[root@web02 app]# ln -s /app/nginx-1.16.1/ /app/nginx
(三) 啟動Nginx 軟體測試
[root@web02 app]# /app/nginx/sbin/nginx [root@web02 app]# ps -ef |grep nginx 檢查進程是否啟用 root 16565 1 0 17:10 ? 00:00:00 nginx: master process /app/nginx/sbin/nginx 管理nginx軟體服務 www 16566 16565 0 17:10 ? 00:00:00 nginx: worker process 工作人員進程(解決高併發訪問時需要調整) root 16568 16527 0 17:10 pts/1 00:00:00 grep nginx [root@web02 nginx]# grep -Ev "#|^$" ./conf/nginx.conf.default > ./conf/nginx.conf 過濾掉沒用的井號信息與空白行
(四) 創建www站點目錄
[root@web02 html]# mkdir -p /app/nginx/html/www [root@web02 html]# cat /app/nginx/html/www/index.html 10.0.0.8 www.impkk.com
(五) 批量創建站點目錄規範化
[root@web02 ~]# for name in www pho blog;do echo "10.0.0.8 $name.impkk.com" > /app/nginx/html/$name/index.html;done [root@web02 ~]# for name in www pho blog;do cat /app/nginx/html/$name/index.html;done 10.0.0.8 www.impkk.com 10.0.0.8 pho.impkk.com 10.0.0.8 blog.impkk.com [root@web02 conf]# sed -n '10,17p' nginx.conf server { listen 80; server_name www.impkk.com; location / { root html/www; index index.html index.htm; } } [root@web02 conf]# sed -n '10,17p' nginx.conf > extra/www.conf [root@web02 conf]# sed -n '10,17p' nginx.conf > extra/pho.conf [root@web02 conf]# sed -n '10,17p' nginx.conf > extra/blog.conf [root@web02 conf]# /app/nginx/sbin/nginx -t nginx: the configuration file /app/nginx-1.16.1/conf/nginx.conf syntax is ok nginx: configuration file /app/nginx-1.16.1/conf/nginx.conf test is successful [root@web02 conf]# /app/nginx/sbin/nginx -s reload
(六) 測試網站訪問情況
1. 修改hosts文件添加功能變數名稱信息
[root@web02 conf]# cat /etc/hosts 172.16.1.8 web02 www.impkk.com blog.impkk.com pho.impkk.com
2. 利用curl 命令查看靜態網站是否顯示成功
[root@web02 ~]# curl www.impkk.com 10.0.0.8 www.impkk.com [root@web02 ~]# curl blog.impkk.com 10.0.0.8 blog.impkk.com [root@web02 ~]# curl pho.impkk.com 10.0.0.8 pho.impkk.com
(七) Nginx 啟動命令參數(sbin目錄下的命令參數)*必須使用全路徑
-V 查看nginx軟體編譯配置參數(是如何安裝nginx軟體的)
-v 查看nginx版本信息
-t 檢查nginx配置文件語法格式是否正確
-s 用於管理nginx服務運行狀態(語法是否有錯誤)
stop 停止nginx服務
reload重新載入nginx服務
真正重啟nginx服務就是停止後重新啟動服務/*./nginx -s stop 後重新啟動nginx
[root@web01 ~]# /application/nginx/sbin/nginx -t nginx: the configuration file /application/nginx-1.16/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.16/conf/nginx.conf test is successful [root@web01 ~]# /application/nginx/sbin/nginx -s reload [root@web01 ~]# /application/nginx/sbin/nginx -s stop
(八) Nginx 日誌相關設置
1. 錯誤日誌配置方法:在nginx.conf的配置文件主模塊後添加日誌信息
error_log日誌級別分為:debug,info,notice,warn,error,crit (預設crit)
error_log logs/error.log error
錯誤日誌 存放位置 記錄日誌級別
2. 訪問日誌access.log配置方法:(配置在http模塊內)
log_format main '$remote_addr - $remote_user [$time_local] "$request"' #定義日誌信息記錄內容
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main; #調用定義格式信息(log_format main)生成訪問日誌
訪問日誌 存放位置 啟動訪問日誌功能
2.1 access訪問日誌內容含義:
$remote_addr 10.0.0.1 訪問客戶端源地址信息 $remote_user - 訪問客戶端認證用戶信息 [$time_local] 顯示訪問時間 $request GET/HTTP/1.1 顯示請求信息 $status 304 狀態碼信息(304為利用緩存顯示頁面信息) $body_bytes_sent 服務端相應客戶端數據大小信息 $http_referer 記錄鏈接到網站的功能變數名稱信息 $http_user_agent 用戶訪問網站客戶端軟體標識信息 $http_x_forwarded_for 反向代理