一、基本知識
1.作者
Nginx (engine x) 是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP服務(wù)器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。
2.優(yōu)點
Nginx 是一個很強大的高性能它具有很多非常優(yōu)越的特性:在連接高并發(fā)的情況下,Nginx是[Apache]服務(wù)器不錯的替代品,能夠支持高達 50,000 個并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了 epoll and kqueue作為開發(fā)模型。
當(dāng)然優(yōu)點還有很多 ,此處大概歸納,僅供參考!
3.安裝所需環(huán)境(本人為CenterOS7)
1.gcc安裝
nginx使用C語言開發(fā),編譯Nginx的源碼依賴 gcc 環(huán)境,如果沒有 gcc 環(huán)境,則需要安裝,安裝命令為:
yum install gcc-c++
2.PCRE pcre-devel 安裝
PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發(fā)的一個二次開發(fā)庫。nginx也需要此庫。命令:
yum install -y pcre pcre-devel
3.zlib 安裝
nginx 使用 zlib 對 http 包的內(nèi)容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。
yum install -y zlib zlib-devel
4.OpenSSL 安裝
nginx 不僅支持 http 協(xié)議,還支持 https(即在ssl協(xié)議上傳輸http),而OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。所以需要在 Centos 安裝 OpenSSL 庫。
yum install -y openssl openssl-devel
4.源碼下載
- 方式一、官方網(wǎng)站地址:https://nginx.org/en/download.html

- 方式二、直接使用wget命令下載 (推薦選用)
1.10.1應(yīng)該是當(dāng)前的穩(wěn)定版本。如果想體驗Nginx的其他新功能作為學(xué)習(xí)的話可以嘗試其他非穩(wěn)定發(fā)布版本。
5.解壓源碼
命令如下 對于使用Linux系統(tǒng)的人這些命令你應(yīng)該已經(jīng)熟悉到不能再熟悉了,解壓源碼并進去解壓目錄,如下:
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
5.配置
- 默認(rèn)配置(推薦使用)
./configure
- 自定義配置
由于本人暫時對于自定義配置不是很清楚,故選擇了網(wǎng)上的一個配置文件,如下,僅供參考。
./configure
--prefix=/usr/local/nginx
--conf-path=/usr/local/nginx/conf/nginx.conf
--pid-path=/usr/local/nginx/conf/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
注:將臨時文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄
6.編譯安裝
- 查找安裝路徑(使用wget安裝的一般位于 / usr/local 下):
whereis nginx
7.啟動、停止Nginx
切換到Nginx sbin 目錄
cd /usr/local/nginx/sbin/
執(zhí)行啟動命令
./nginx
停止命令
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步驟是待nginx進程處理任務(wù)完畢進行停止。
./nginx -s stop:此方式相當(dāng)于先查出nginx進程id再使用kill命令強制殺掉進程。
查詢nginx進程:
ps aux|grep nginx
8.重啟Nginx
- 方式一、先停止再啟動(推薦使用):
對 nginx 進行重啟相當(dāng)于先停止再啟動,即先執(zhí)行停止命令再執(zhí)行啟動命令。如下:
./nginx -s quit
./nginx
- 方式二、重新加載配置文件:
當(dāng) ngin x的配置文件 nginx.conf 修改后,要想讓配置生效需要重啟 nginx,使用-s reload不用先停止 ngin x再啟動 nginx 即可將配置信息在 nginx 中生效,如下:
./nginx -s reload
如果80端口沒有被占用的話此時在瀏覽器中輸入服務(wù)器IP地址應(yīng)該已經(jīng)可以訪問到Nginx的首頁;但是如果你的80端口已經(jīng)被占用的話就需要修改Nginx的使用端口。
9.修改Nginx配置文件
進入nginx的conf目錄 命令如下:
1.先停止再啟動(推薦):
對 nginx 進行重啟相當(dāng)于先停止再啟動,即先執(zhí)行停止命令再執(zhí)行啟動命令。如下:
./nginx -s quit
./nginx
2.重新加載配置文件:
當(dāng) ngin x的配置文件 nginx.conf 修改后,要想讓配置生效需要重啟 nginx,使用-s reload不用先停止 ngin x再啟動 nginx 即可將配置信息在 nginx 中生效,如下:
vim /usr/local/nginx/conf/nginx.conf
修改文件內(nèi)容:

然后重啟Nginx,再次在瀏覽器進行訪問,得到如下頁面代表配置安裝成功:

阿里云服務(wù)器相關(guān)配置

9.設(shè)置開機自啟動
使用命令如下:打開文件rc.local
vim /etc/rc.local
增加 /usr/local/nginx/sbin/nginx

設(shè)置改文件執(zhí)行權(quán)限:
chmod 755 rc.local
10.項目部署
- 結(jié)合tomcat進行部署,修改Nginx配置文件
命令如下:
vim /usr/local/nginx/conf/nginx.conf

- 配置過程中重啟nginx時出現(xiàn)了一個異常 做下記錄,異常信息如下:
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
進過查閱,確實缺少nginx.pid文件,
解決方案:使用nginx -c的參數(shù)指定nginx.conf文件的位置,命令如下
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
如果感興趣可以自己去查看一下logs目錄,這個文件已經(jīng)重新生成。

此時,指定tomcat之后你會發(fā)現(xiàn)再次訪問nginx服務(wù)器地址時會分發(fā)到你配置的那臺tomcat服務(wù)器上,至此,基本配置結(jié)束。下一篇將講述多個tomcat的配置
以上內(nèi)容為個人學(xué)習(xí)記錄,供大家參考,歡迎批評指正,共同進步!