1.得到最新版本的Nginx服務器javascript
Nginx三種版本:1 開發版 Development 2穩定版 Stable version 3 過時版本 Legacy versionshtml
2.安裝nginx準備,linux安裝須要先對源代碼進行編譯。java
GCC編譯器,全程爲(GNU Compiler Collection),編譯源代碼使用linux
Automake 工具,用來完成自動建立Makefile的工做。Makefile是make命令的配置文件nginx
另外,不須要使用autoconf工具,Nginx軟件的自動腳本不是用autoconf生成的,是做者手工編寫的。c++
pcre庫 正則表達式 用來支持rewrite模塊正則表達式
zlib庫,支持gzip模塊,壓縮相關緩存
openssl庫,支持ssl模塊(ssl安全套接層)安全
相關命令 服務器
yum -y install gcc gcc-c++
yum -y install automake
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install open openssl-devel
複製地址連接 下載 wget http://nginx.org/download/nginx-1.12.2.tar.gz
3.編譯安裝 Nginx
解壓Nginx歸檔文件 tar xf nginx-1.12.2.tar.gz
生成Makefile 文件 ./configure --prefix=/Nginx
make
make install
4.Nginx啓動中止控制
控制信號
kill [SIGNAL] [PID]
kill [SIGNAL] [nginx.pid路徑]
幫助 ./nginx -h
啓動 ./Nginx 無任何輸出表明啓動成功
關閉 方法一:./Nginx -g TERM | INT | QUIT (TERM|INT 快速中止,QUIT用平緩中止)
方法二:kill TERM|INT|QUIT '/Nginx/logs/nginx.pid'
方法三:kill -9 | SIGKILL '/Nginx/logs/nginx.pid' 不建議這樣使用
平滑重啓 ./nginx -g HUP [-c newConfFile]
kill HUP ‘/Nginx/log/nginx.pid’
HUP 平滑重啓的信號
平滑升級
步驟1,./Nginx/nginx -p newInstallPath 切換Nginx的安裝路徑爲新的
步驟2,./sbin/Nginx -g USR2 USR2用於平滑升級 用ps -ef |grep nginx 查看新的Nginx是否啓動正常
或者 kill USR2 ‘/Nginx/logs/nginx.pid'
步驟3,./sbin/Nginx -g WINCH 用於平滑中止舊的服務信號
或者 kill WINCH ‘/Nginx/logs/nginx.pid’
5.nginx配置
全局塊 做用域是nginx服務器全局 包括 用戶(組),容許生成的worker process 數,Nginx PID存放路徑 日誌存放路徑和類型 以及配置文件的引入。
event塊 主要影響Nginx服務器與用戶的網絡鏈接。經常使用的入 是否開啓序列化,是否容許同時接收多個網絡鏈接,選取哪一種時間模型處理鏈接請求,每一個worker process 能夠同時支持的最大鏈接數。
HTTP塊 代理 緩存 日誌定義 等絕大多數功能和第三方模塊的配置均可以放在這個模塊中
server塊 和虛擬主機的概念有着密切的聯繫,
location塊 基於Nginx服務器接受請求字符串,對除了虛擬主機之外的字符串進行匹配,對特定請求進行處理。
具體
配置運行Nginx服務器用戶(組)
user user [group]
user 制定Nginx服務器的用戶
group 可選項 制定能夠運行Nginx服務器的用戶組
只有被設置的用戶或用戶組才能啓動nginx
若是但願全部的用戶均可以啓動Nginx進程,一種方法是將此行註釋掉,一種是將用戶和用戶組設置爲nobody
配置容許生成worker process數
worker_processes number |auto
number 制定Nginx最多能夠產生的worker process 數
auto Nginx自動檢測
配置Nginx進程的PID存放路徑
pid file
配置錯誤日誌的存放路徑
error_log file | stderr [debug|info|notice|warn|error|crit|alert|emerg]
stderr (輸出到標準錯誤輸出)
配置文件的引入
include file
設置網絡鏈接的序列化
應對 驚羣 效應
accept_mutex on |off
on 爲開啓狀態 只能在event塊中使用
將會對多個Nginx進程接受鏈接進行序列化,防止多個進程對鏈接爭搶
ps 如何解決驚羣效應,在接受端的內部設置一個變量,維護是否能夠接受的狀態。
設置事件驅動模型的選擇
use method
method 有 select poll kqueue epoll rtsig /dev/poll eventport
配置最大鏈接數
worker_connections number
number 默認值是512
定義MIME_Type
include mime.types;
default_type application/octet-stream;
types{
text/html html htm shtml;
image/gif gif;
application/x-javascript js;
audio/midi mid midi kar;
video/3gpp 3gpp 3gp;
}
自定義服務日誌
access_log path [format[buffer=size]]
log_format name string
例子
access_log logs/access.log combined;
log_format combined '$remote_addr - [$time_local] $request '
'$status $body_bytes_sent $http_referer'
'$http_user_agent'
配置容許sendfile方式傳輸文件
sendfile on |off
設置爲on表示啓動高效傳輸文件的模式。sendfile可讓Nginx在傳輸文件時直接在磁盤和tcp socket之間傳輸數據。若是這個參數不開啓,
會先在用戶空間(Nginx進 程空間)申請一個buffer,用read函數把數據從磁盤讀到cache,再從cache讀取到用戶空間的buffer,
再用write函數把數據從用戶空間的buffer寫入到內核的buffer,最後到tcp socket。開啓這個參數後可讓數據不用通過用戶buffer。
sendfile_max_chunk size
size 爲0爲無限制
配置連接超時時間
keepalive_timeout timeout [header_timeout]
timeout 服務器對鏈接的保持時間 默認值爲75
例子:keepalive_timeout 120s 100s 服務器保持鏈接的時間設置爲120s,發給用戶端的應答報文頭部中的keepAlive域的超時時間設置爲100s。
單次請求數上線
keepalive_requests number;
限制用戶經過某一個鏈接想Nginx服務器發送的請求次數。
配置網絡監聽(配置指令複雜,使用簡單)
配置監聽哪一個端口
listen *:80 | *:8080
基於名稱的虛擬機配置
server_name name
基於IP的虛擬主機配置
配置location塊
配置請求的根目錄
更改location的URI
alias path
設置網頁的默認首頁
index
設置網頁的錯誤頁面
error_page 404 /404.html
基於IP配置Nginx的訪問權限
基於密碼配置Nginx的訪問權限