時下在大型的網絡站點上,大部分都是採用LNMP部署的結構。這裏主要理清下Nginx的部署,對nginx的使用作一個小結(另外倆個小結一個是安裝小結,還有一個部署小結)。 html
1. 首先登陸服務器查看nginx是否安裝(雖然很弱智,可是查看用的是何種web服務器工做仍是很是有必要的) mysql
which nginx nginx
(告訴你該命令在哪裏,若是沒有安裝,系統會提示你沒有該命令ng nginx之類的) web
2.確認nginx的默認目錄(新手用Linux的時候,最苦惱的是找到對應的安裝目錄) sql
輸入whereis nginx bash
除掉執行目錄 剩下的那個就是安裝目錄。(通常默認執行目錄都在usr/bin/nginx下,而對應的安裝會在/usr/local/nginx下) 服務器
若是安裝的時候還須要一些拓展庫之類的,會放到lib和include目錄下,例如mysql服務 網絡
3.切換進入對應的nginx目錄後,能夠看到以下列表(這是LNMP一鍵安裝的默認目錄,對於大部分部署而言,這種默認目錄也是很是常見的) 性能
通常經常使用的三個目錄 spa
conf(nginx的核心配置目錄)
html(訪問nginx成功或者錯誤文件會存放在這裏)
logs(訪問nginx的錯誤日誌還有一個nginx的pid文件,nginx異常的時候,首先查看的是這個地方,檢測nginx的異常很是有幫助)
4.進入nginx的核心配置模塊(對於通常的開發而言,進入conf模塊是最經常使用的功能,配置站點,特別是配置比較多的時候,須要常常出入該地方),因爲我用的是一鍵安裝LNMP,默認狀況下已經給配置了N多經常使用的開源系統的重寫配置,看上去比較雜,關於nginx的重寫是一個比較複雜的問題,另外會有博客進行總結。
配置nginx最核心的文件nginx.conf(修正一些性能經常使用的核心文件),將其顯示出來進行分析。
5.下面進行逐行解析:
定義nginx的用戶和用戶組。
查看用戶能夠用cat /etc/passwd進行查看
表示含義:www用戶密碼 保存在/etc/shadow,系統的用戶id是1000組別gid是1000,
用戶擁有的目錄:/home/www(這是不少程序默認放到/home/www目錄下執行的緣由,在其餘目錄下,須要更改權限,不然直接報錯沒法運行,這是不少配置好了nginx沒法運行的問題緣由)
能夠運行的命令 /bin/bash
常見的403錯誤 常常會由於沒有目錄執行權限出現該問題
6.nginx的進程數,通常建議等於CPU的核數(自動進程裏通常和CPU內核是相等的,這樣能夠最大限度的利用CPU功效)
查看當前nginx的進程 ps -ef | grep nginx
7.錯誤日誌(該錯誤日誌是默認站點的錯誤日誌,在配置裏是能夠進行改動的)
8.進程文件。每一個請求都會交給一個進程進行處理(nginx啓動的時候會啓動多個進程,發送請求的時候,須要知道是哪一個進程,把pid寫進文件進行識別是一個比較簡單的作法)
9.最大的文件打開數(服務器打開文件是有個上限的,若是不限定打開的文件,該上限會是系統的打開文件上限)
10.nginx的事件(如今服務器性能通常都比較高,會選擇epoll)
#參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本內核中的高性能網絡I/O模型,若是跑在FreeBSD上面,就用kqueue模型。
#單個進程最大鏈接數(最大鏈接數=鏈接數*進程數)
worker_connections 65535;
Multi_accept on
#(默認狀況是關閉的,multi_accept在Nginx接到一個新鏈接通知後調用accept()來接受盡可能多的鏈接,不然會須要不停的開啓鏈接來接受同一個站點的請求,能夠節省大量不一樣訪問帶來的開銷 )