眼下,你應該成功安裝並創建了Nginx,默認的位置爲/usr/local/nginx,所以咱們未來的例子都將基於這個目錄。前端
守護進程和服務nginx
下一步,顯然是執行Nginx。計算機應用程序有兩個類型——有的須要用戶在前端輸入命令後當即運行;有的則否則,運行於後臺。Nginx屬於後者,即常常說起的做爲守護進程運行的那種程序。守護進程的名稱後一般帶有「d」字樣。這裏有幾個例子——httpd是HTTP服務器的守護進程;named是域名服務器的守護進程;然而,須要注意,Nginx不是這種狀況。從命令行啓動Nginx的時候,守護進程會當即返回到命令行提示符,在大多數狀況下,用不着向終端屏幕輸出數據。所以,啓動Nginx的時候,屏幕上不會出現任何文本信息,而且提示符會當即返回。shell
用戶和組服務器
一個最普通的麻煩來源是,對Nginx設置的是一個無效的訪問權限的時候——因爲用戶或用戶組的錯誤配置,常常會報告「403 Forbidden」錯誤,由於Nginx不能訪問你須要的文件。根據進程的功能,可能須要兩個不一樣級別的進程權限:測試
Nginx的master進程,由root啓動,在大多數類Unix系統上,由root賬戶開啓的進程容許在開聽任何端口的的TCP套接字,可是其餘用戶啓動的程序只能監聽在1024以上的端口。若是不是以root賬戶啓動Nginx,將沒法獲得標準的端口(如80或443),即沒法啓動。並且,經過user指令在配置文件中指定的用戶和組用於工做進程,在這裏不考慮。ui
Nginx的工做進程,由配置文件中user指令指定的賬戶開始運行,配置文件中的設置優先於在配置時使用configure腳本開關選項指定的用戶。若是沒有作任何指定,工做進程將以用戶nobody開始,用戶組爲nobody組。spa
Nginx命令行開關項命令行
Nginx二進制文件接收命令行參數,用於執行各類操做,控制後臺進程。爲了獲取該命令的所有參數列表,能夠請求help幫助:日誌
# cd /usr/local/nginx/sbin # ./nginx -h
下面將描述這些開關項的做用,一些用於控制守護進程,一些用於在應用配置上執行各類操做。code
啓動和中止守護進程
能夠經過不帶任何參數的Nginx二進制文件來啓動Nginx。若是該守護進程已經運行,就會有一條消息指出已經有一個套接字在指定端口監聽:
# ./nginx
若是有守護進程已經在運行,結果以下:
除了這一點,你能夠控制這個守護進程,能夠中止它,重啓它,或只是從新載入配置文件,控制是經過nginx -s 命令向進程發送信號來實現的:
命令 |
描述 |
nginx -s stop |
當即中止守護進程(使用TERM信號) |
nginx -s quit |
溫和地中止守護進程(使用QUIT信號) |
nginx -s reopen |
從新打開日誌文件 |
nginx -s reload |
從新載入配置文件 |
注意,在開始運行這個守護進程,中止它或執行前面說的任何操做時,會首先解析和確認配置文件,若是配置文件無效,無論提交什麼命令,都會失敗,甚至是試圖中止一個守護進程。換句話說,若是配置文件無效,興許沒法中止Nginx服務。
有一種替代方法能夠終止該進程,只適用於危急狀況,即便用kill或killall命令:
# killall nginx
測試配置文件
在配置文件中,任何不起眼的錯誤均可能致使你喪失對服務的控制權——可能沒法以正常的方式中止服務,顯而易見,服務拒絕運行。
所以,在不少狀況下,下列命令是頗有用的,能夠檢測語法,合法性和配置文件的完整性:
# /usr/local/nginx/sbin/nginx -t
開關選項 -t 表明測試配置文件。Nginx將從新解析配置文件,讓你知道配置文件是否有效。以下圖:
顯而易見,必須可以熟練控制配置文件。生產環境中的服務器,這樣作是很危險的,要不惜任何代價避免這種狀況。既然這樣,一個最好的實踐是將新配置放在一個單獨的臨時文件中,而後再對該文件進行測試。Nginx提供了一個 -c 選項,即可進行這種測試:
# ./nginx -t -c /home/alex/test.conf
該命令將解析配置文件 /home/alex/test.conf,肯定它做爲Nginx配置文件的有效性。此後,再覆蓋原來配置文件,而後從新載入服務器配置文件:
# cp /home/alex/test.conf /usr/local/nginx/conf/nginx.conf # ./nginx -s reload
其餘開關選項
其餘開關選項在許多狀況下早晚都會用到: -V 選項,不但會告訴你當前Nginx的版本號,更重要的是還會提醒你在configure腳本那一步所添加的開關選項,換句話說,該開關選項將顯示你在使用運行configure腳本配置的各類開關選項。