1.源碼下載
Nginx在github上有一個只讀源碼庫,我獲取的源碼方式為:
git clone https://github.com/nginx/nginx.git
2.configure
我下載源碼的時候,github上的源碼的目錄結構為: auto, conf, contrib, docs, misc, src共6個目錄。src目錄是源代碼文件,docs下面是幫助文檔, conf下面是一些配置文件, auto下面有configure文件,由于configure文件會應用 auto/options, auto/init, auto/sources等文件,所以在運行./configure之前要把configure文件拷貝到auto目錄的父目錄下。
cd ./nginx
cp ./auto/configure .
./configure
3.編譯安裝
make
sudo make install
默認安裝后nginx位于/usr/local/nginx/目錄下,nginx的配置文件在/usr/local/nginx/conf/nginx.conf文件,我在測試時,默認的服務器監聽端口是80,可以根據自己的需要修改端口,例如我將端口修改為8000。
4.Nginx基本信息檢查
檢查配置文件的正確性:
/usr/local/nginx/sbin/nginx -t 或者
/usr/local/nginx/sbin/nginx -t -c /urs/local/nginx/conf/nginx.conf
其中,-t 參數用于檢查配置文件是否正確,但并不執行。 -c參數用于指定配置文件的路徑。如果不指定文件路徑,nginx默認會在安裝時指定的安裝目錄下查找conf/nginx.conf配置文件。
如果檢測的配置文件正確。顯示的結果如下:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
顯示Nginx版本及相關編譯信息
要查看Nginx的版本信息可以運行:
#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.11.4
#
如果不僅是要顯示Nginx的版本信息,還要現實nginx在編譯時指定的相關模塊信息,可以:
#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.11.4
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
configure arguments:
#
Nginx的啟動、關閉與重啟
Nginx對進程的控制能力非常強大,可以通過信號來控制進程。常用的信號有:
QUIT,表示處理完當前請求后,關閉進程
HUP,表示重新加載配置,也就是關閉原有的進程,并啟動新的工作進程。此操作不會中斷用戶的訪問請求。因此,可以通過此信號平滑的重啟Nginx。
USR1,用于Nginx的日志切換,也就是重新打開一個日志文件,例如每天要生成一個新的日志文件時,可以使用這個信號來控制。
USR2,用于平滑升級可執行程序。
WINCH,從容關閉工作進程。
Nginx的啟動
Nginx的啟動比較簡單
#/usr/local/nginx/sbin/nginx
即可啟動Nginx。啟動后可以通過如下命令查看Nginx的啟動進程:
#ps -ef | grep nginx
root 9725 1 0 16:40 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 9916 9725 0 16:47 ? 00:00:00 nginx: worker process
root 10421 10229 0 17:44 pts/3 00:00:00 grep –color=auto nginx
#
Nginx的關閉
如果要關閉Nginx的進程,可以使用kill命令。
kill -XXX pid
其中,-XXX就是信號名, pid是Nginx的進程號,可以通過如下兩個命令獲得:
#ps -ef | grep “nginx: master process”| grep -v “grep”| awk ‘{print $2}’
9725
#
或者:
#cat /usr/local/nginx/logs/nginx.pid
9725
#
Nginx的平滑重啟
要不間斷服務地重新啟動Nginx,可以使用如下命令:
#kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
參考文檔:www.educity.cn/linux/1147279.html