2、NGINX的安裝及配置

nginx下載

Nginx是開源軟件,您能夠從其官網(http://www.nginx.net/)下載最新版本。nginx

Nginx的編譯要求

磁盤空間:須要保證有10M以上的剩餘磁盤空間。Nginx安裝後會佔據4M左右的磁盤空間,實際的磁盤空間需求會由於編譯設置和是否安裝第三方模塊而有所不一樣。c++

2.1 安裝Nginx服務器所須要的系統資源

GCC編譯器及相關工具:GCC全稱爲GUN Compiler Collection,是GNU社區推出的功能強大、性能優越的用於編程開發的自由編譯器,是GNU的表明做品之一,目前能夠編譯的語言包括:C、C++、Objective-C、Fortran、Java等。您必須確保您的操做系統安裝有GCC編譯器。另外,您還需安裝Autoconf和Automake工具,他們用於自動建立功能完善的Makefile,當前大多數軟件包都是用這一工具生成Makefile的,nginx也不例外。web

在CentOS系統下,您可使用yum命令安裝GCC編譯器及相關工具:編程

Yum –y install gcc gcc-c++ autoconf automake

模塊依賴性

Nginx的一些模塊須要其餘第三方庫的支持,例如gzip模塊須要zlib庫,rewrite模塊須要pcre庫,ssl功能須要openssl庫等。一樣,若是是在CentOS系統下,咱們可使用yum命令安裝或下載源碼包編譯安裝這些模塊依賴的庫:windows

Yum –y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

2.2  Nginx的安裝

Nginx從0.7.52版本開始有了官方的Windows版本,因此這裏分別介紹Nginx在Windows下和Linux下的安裝步驟。bash

2.2.1   nginx在windows環境下的安裝

Nginx在windows下的安裝比較簡單,將下載下來的Nginx-0.XXX.XX.zip文件解壓縮到一個不包含空格的路徑中,例如:D:\nginx,而後在「開始」-「運行」-「cmd」中執行如下DOS命令便可啓動nginx:服務器

D:

cd d:\nginx

start nginx

若是要對啓動的Nginx進程進行控制,可使用DOS命令:工具

nginx –s [stop | quit | reopen |reload]

2.2.2  nginx在Linux/Unix環境下的安裝

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

gunzip nginx-0.x.xx.tar.gz
tar –cvf nginx-0.x.xx.tar.
(UNIX系統使用tar –xf nginx-0.x.xx.tar)
cd nginx-0.x.xx
./configure
make
sudo make install

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

使用如下命令自定義編譯選項:

./configure
--prefix=/usr  \
--sbin-path=/usr/sbin/nginx  \
……

2.3 Nginx的啓動、中止、平滑重啓

2.3.1 nginx的啓動

     啓動Nginx,能夠執行如下命令。假設Nginx安裝在/usr/local/nginx/目錄中,那麼啓動nginx的命令就是:

/usr/local/nginx/sbin/ -c /usr/local/nginx/conf/nginx.conf

參數「-c」指定了配置文件得路徑,若是不加「-c」參數,nginx會默認加載其安裝目錄的conf子目錄中的nginx.conf文件,在本例中即:/usr/local/nginx/sbin/nginx/conf/nginx.conf

2.3.2  nginx的中止

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

ps –ef | grep nginx

主進程的標誌「master process」,子進程的標誌:「worker process」

2.3.3 nginx的平滑重啓

若是在nginx.conf配置文件中指定了pid文件存放的路徑(例如:pid /usr/local/webserver/nginx/logs/nginx.pid),該文件中存放的就是nginx當前的主進程號。若是沒有指定pid文件存放路徑,nginx.pid文件默認存放在nginx安裝目錄的logs目錄下。因此,咱們能夠直接經過如下命令來完成平滑重啓,省下尋找nginx主進程號的步驟:

kill –信號類型 ‘/usr/local/webserver/nginx/logs/nginx.pid’

信號類型:

TERM:快速關閉;
Quit 從容關閉;
HUP 平滑重啓,從新加載配置文件;
USR1:從新打開日誌文件,在切割日誌時用途較大
USR2:平滑升級可執行程序
WINCH:從容關閉工做進程

2.4 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)一段時間後,舊的工做進程處理了全部已鏈接的請求後退出,僅由新的工做進程來處理輸入的請求了。

(6)這時候,咱們能夠決定是使用新版本,仍是恢復到舊版本:

kill –HUP 舊的主進程號:nginx將在不重載配置文件的狀況下啓動它的工做進程

Kill –QUIT 新的主進程號:從容關閉其工做進程

kill –TERM 新的主進程號:強制退出

kill 新的主進程號或舊的主進程號:若是由於某些緣由新的工做進程不能退出,則向其發送kill信號

新的主進程退出後,舊的主進程會移除.oldbin前綴,恢復它的.pid文件,這樣,一切就都恢復到升級以前了。若是嘗試升級成功,而你也但願保留新的服務器時,可發送QUIT信號給舊的主進程,使其退出而只留下新的服務器運行。

相關文章
相關標籤/搜索