centos下安裝nginx

centos下安裝nginx

編譯Nginx的要求以下:
磁盤空間:須要保證有10MB以上的剩餘磁盤空間。Nginx安裝完畢後會佔據4MB左右的磁盤空間,實際的磁盤空間需求會因編譯設置和是否安裝第三方模塊而有所不一樣。
GCC編譯器及相關工具:GCC全稱爲GNU Compiler Collection, 是GNU社區推出的功能強大、性能優越的用於編程開發的自由編譯器,是GNU的表明做品之一,目前能夠編譯的語言包括:C、C++、Objective-C、Fortran、Java等。您必須確保您的操做系統安裝有GCC編譯器。
另外,您還必須安裝Autoconf和Automake工具,它們用於自動建立功能完善的Makefile,當前大多數軟件包都是用這一工具生成Makefile的,Nginx也不例外。在CentOS系統下,您可使用yum命令安裝GCC編譯器及相關工具:
yum -y install gcc gcc-c++ autoconf automake
模塊依賴性:Nginx的一些模塊須要其餘第三方庫的支持,例如gzip模塊須要zlib庫,rewrite模塊須要pcre庫,ssl功能須要openssl庫等。一樣,若是是在CentOS系統下,咱們可使用yum命令安裝或下載源碼包編譯安裝這些模塊依賴的庫:
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

Nginx在Linux環境下能夠經過編譯源碼的方式來安裝,最簡單的安裝命令以下:nginx

tar zxvf nginx-版本號.tar.gz
cd nginx-版本號
./configure
make
make install
c++

按照以上命令,Nginx將被默認安裝到/usr/local/nginx目錄下。您能夠經過/configure --help命令查看Nginx可選擇的編譯選項。web

編譯選項舉例以下:編程

--prefix=<path> Nginx安裝路徑。若是沒有指定,默認爲/usr/local/nginx
--sbin-path=<path> Nginx可執行文件安裝路徑。只能安裝時指定,若是沒有指定,默認爲<prefix>/sbin/nginx
--conf-path=<path> 在沒有給定 –c 選項下默認的nginx.conf的路徑。若是沒有指定,默認爲<prefix>/conf/nginx.conf
--pid-path=<path> 在nginx.conf中沒有指定pid指令的狀況下,默認的Nginx.pid的路徑。若是沒有指定,默認爲<prerix>/logs/nginx.pidcentos

等等服務器

Nginx的啓動,中止,平滑重啓工具

啓動Nginx
啓動Nginx,能夠執行如下命令。假設Nginx安裝在/usr/locaUnginx/目錄中,那麼啓動Nginx的命令就是:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
參數「-c」指定了配置文件的路徑,若是不加「-c」參數,Nginx會默認加載其安裝目錄的conf子目錄中的nginx.conf文件性能

Nginx的中止
Nginx的中止方法有不少種,通常經過發送系統信號給Nginx主進程的方式來中止Nginx。
咱們能夠經過ps命令來查找Nginx的主進程號:
ps –ef | grep nginxui

 

從圖中能夠看到,1個Nginx進程的備註信息爲「master process」,表示它爲主進程,另外的1個進程備註信息爲「worker process」,表示它們爲子進程。32244爲主進程號。
若是在nginx.conf配置文件中指定了pid文件存放的路徑(例如:/usr/local/webserver/nginx/logs/nginx.pid;),該文件中存放的就是Nginx當前的主進程號。若是沒有指定pid文件存放的路徑,nginx.pid文件默認存放在Nginx安裝目錄的logs目錄下。因此,咱們也能夠直接經過如下命令來完成,省下尋找Nginx主進程號的步驟:
kill -信號類型 `/usr/local/webserver/nginx/logs/nginx.pid`spa

(1)從容中止Nginx。
kill - QUIT Nginx主進程號 或者 kill -QUIT `/usr/local/webserver/nginx/logs/nginx.pid`

(2)快速中止Nginx
kill - TERM Nginx主進程號 或者 kill -TERM `/usr/local/webserver/nginx/logs/nginx.pid`

kill - INT Nginx主進程號 或者 kill -INT `/usr/local/webserver/nginx/logs/nginx.pid`

(3)強制中止全部Nginx進程

pkill –9 nginx

Nginx的平滑重啓

若是改變了Nginx的配置文件(nginx conf),想重啓Nginx,一樣能夠經過發送系統信號給Nginx主進程的方式來進行。不過,重啓以前,要確認Nginx配置文件(nginx.conf)的語法是正確的,不然Nginx將不會加載新的配置文件。經過如下命令能夠判斷Nginx配置文件是否正確:
/usr/local/webserver/nginx/sbin/nginx –t -c
/usr/local/webserver/nginx/conf/nginx.conf

若是配置文件不正確,屏幕將會提示配置文件的第幾行出錯:
[emerg]:unknown directive」abc「in /usr/local/webserver/nginx/conf/nginx.conf:55

configuration file /usr/local/webserver/www.huitao.net/nginx/conf/nginx.conf test failed

若是配置文件正確,屏幕將提示如下兩行信息:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is OK
configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful

這時候,就能夠平滑重啓Nginx了。
kill -HUP Nginx主進程號
kill一HUP `/usr/local/webserver/nginx/logs/nginx.pid`

當Nginx接收到HUP信號時,它會嘗試先解析配置文件,若是成功,就應用新的配置文件(例如,從新打開日誌文件或監聽的套接字)。以後,Nginx運行新的工做進程並從容關閉舊的工做進程。通知工做進程關閉監聽套接字,可是繼續爲當前鏈接的客戶提供服務。全部客戶端的服務完成後,舊的工做進程被關閉。若是新的配置文件應用失敗,Nginx將繼續使用舊的配置進行工做。

Nginx支持如下幾種信號類型:
·TERM,INT快速關閉;
·QUIT從容關閉;
·HUP平滑重啓,從新加載配置文件;
·USR1從新打開日誌文件,在切割日誌時用途較大;
·USR2平滑升級可執行程序;
·WINCH從容關閉工做進程。

Nginx的平滑升級
當須要將正在運行中的Nginx升級、添加,刪除服務器模塊時,能夠在不中斷服務的狀況下,使用新版本、重編譯的Nginx可執行程序替換舊版本的可執行程序。步驟以下:

(1)使用新的可執行程序替換舊的可執行程序,對於編譯安裝的Nginx,能夠將新版本編譯安裝到舊版本的Nginx安裝路徑中。替換以前,您最好備份一下舊的可執行文件。

(2)發送如下指令:
kill –USR2 舊版本的nginx主進程號

(3)舊版本Nginx的主進程將重命名它的.pid文件爲.oldbin(例如:/usr/local/webserver/nginx/logs/nginx.pid.oldbin),而後執行新版本的Nginx可執行程序,依次啓動新的主進程和新的工做進程。

(4)此時,新、舊版本的Nginx實例會同時運行,共同處理輸入的請求。要逐步中止舊版本的Nginx實例,你必須發送WINCH信號給舊的主進程,而後,它的工做進程就將開始從容關閉:
kill -WINCH 舊版本的Nginx主進程號

(5) 一段時間後,舊的工做進程(worker process)處理了全部已鏈接的請求後退出,僅由新的工做進程來處理輸入的請求了:

(6)這時候,咱們能夠決定是使用新版本,仍是恢復到舊版本:
kill –HUP 舊的主進程號:Nginx將在不重載配置文件的狀況下啓動它的工做進程; kill –QUIT 新的主進程號:從容關閉其工做進程(worker process); kill –TERM 新的主進程號:強制退出; kill 新的主進程號或舊的主進程號:若是由於某些緣由新的工做進程不能退出,則向其發送kill信號。 新的主進程退出後,舊的主進程會移除.oldbin前綴,恢復爲它的.pid文件,這樣,一切就都恢復到升級以前了。若是嘗試升級成功,而你也但願保留新的服務器時,可發送QUIT信號給舊的主進程,使其退出而只留下新的服務器運行:

相關文章
相關標籤/搜索