本章要點(diǎn):
- 簡(jiǎn)介
- Nginx和
- Nginx安裝和一些簡(jiǎn)單操作
1.1 簡(jiǎn)介
Nginx是一款是由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開(kāi)發(fā)高性能的 Web和 反向代理
服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器喷舀。
在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品双饥。
那么什么是反向代理和正向代理呢?
正向代理: 意思是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器弟断,為了從原始服務(wù)器取得內(nèi)容咏花,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端。
反向代理(Reverse Proxy):方式是指以代理服務(wù)器來(lái)接受internet上的連接請(qǐng)求昏翰,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器苍匆,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)反向代理服務(wù)器棚菊。
1.2 Nginx相對(duì)于Apache優(yōu)點(diǎn)
常見(jiàn)的應(yīng)用服務(wù)器: Apache/Microsoft IIS/Tomcat/Lighttpd/Nginx浸踩。
Nginx相對(duì)于Apache優(yōu)點(diǎn):
1)高并發(fā)響應(yīng)性能非常好,官方Nginx處理靜態(tài)文件并發(fā)5w/s
2)反向代理性能非常強(qiáng)统求。(可用于負(fù)載均衡)
3)內(nèi)存和cpu占用率低检碗。(為Apache的1/5-1/10)
4)對(duì)后端服務(wù)有健康檢查功能。
5)支持PHP cgi方式和fastcgi方式码邻。
6)配置代碼簡(jiǎn)潔且容易上手折剃。
1.3 Nginx安裝和一些簡(jiǎn)單操作
安裝
第一步:從http://nginx.org/download/上下載相應(yīng)的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下載)
第二步:解壓 tar -zxvf nginx-1.5.9.tar.gz
第三步:設(shè)置一下配置信息 ./configure --prefix=/usr/local/nginx ,或者不執(zhí)行此步像屋,直接默認(rèn)配置
(可能缺少的包
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
yum -y install pcre-devel
yum install -y zlib-devel)
第四步:
make 編譯 (make的過(guò)程是把各種語(yǔ)言寫(xiě)的源碼文件怕犁,變成可執(zhí)行文件和各種庫(kù)文件)
make install 安裝 (make install是把這些編譯出來(lái)的可執(zhí)行文件和庫(kù)文件復(fù)制到合適的地方)
在配置信息的時(shí)候,也就是在第三步己莺,出現(xiàn)了一下錯(cuò)誤:
錯(cuò)誤為:./configure: error: the HTTP rewrite module requires the PCRE library.
那么需要安裝pcre-devel解決問(wèn)題
yum -y install pcre-devel
還有可能出現(xiàn):
錯(cuò)誤提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library. You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.
解決辦法:
yum -y install openssl openssl-devel
安裝后在linux下啟動(dòng)和關(guān)閉nginx:
啟動(dòng)操作
/usr/nginx/sbin/nginx
(/usr/nginx/sbin/nginx -t 查看配置信息是否正確)
停止操作
停止操作是通過(guò)向nginx進(jìn)程發(fā)送信號(hào)(什么是信號(hào)請(qǐng)參閱linux文 章)來(lái)進(jìn)行的
步驟1:查詢nginx主進(jìn)程號(hào)
ps -ef | grep nginx
在進(jìn)程列表里 面找master進(jìn)程奏甫,它的編號(hào)就是主進(jìn)程號(hào)了。
步驟2:發(fā)送信號(hào)
從容停止Nginx:
kill -QUIT 主進(jìn)程號(hào)
快速停止Nginx:
kill -TERM 主進(jìn)程號(hào)
強(qiáng)制停止Nginx:
pkill -9 nginx
另外凌受, 若在nginx.conf配置了pid文件存放路徑則該文件存放的就是Nginx主進(jìn)程號(hào)扶檐,如果沒(méi)指定則放在nginx的logs目錄下。有了pid文 件胁艰,我們就不用先查詢Nginx的主進(jìn)程號(hào),而直接向Nginx發(fā)送信號(hào)了智蝠,命令如下:
kill -信號(hào)類型 '/usr/nginx/logs/nginx.pid'
平滑重啟
如果更改了配置就要重啟Nginx腾么,要先關(guān)閉Nginx再打開(kāi)?不是的杈湾,可以向Nginx 發(fā)送信號(hào)解虱,平滑重啟。
平滑重啟命令:
kill -HUP 住進(jìn)稱號(hào)或進(jìn)程號(hào)文件路徑
或者使用
/usr/nginx/sbin/nginx -s reload
注意漆撞,修改了配置文件后最好先檢查一下修改過(guò)的配置文件是否正 確殴泰,以免重啟后Nginx出現(xiàn)錯(cuò)誤影響服務(wù)器穩(wěn)定運(yùn)行。判斷Nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
環(huán)境使用yum安裝浮驳,可能遇到一個(gè)問(wèn)題:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
處理很簡(jiǎn)單悍汛,修改文件“/etc/yum.repos.d/epel.repo”, 將baseurl的注釋取消至会, mirrorlist注釋掉就行离咐。
還有可能遇到以下這個(gè)錯(cuò)誤:
Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
這個(gè)錯(cuò)誤其實(shí)也很簡(jiǎn)單,錯(cuò)誤信息已經(jīng)提示你,就是xxxxxx.repo這個(gè)文件有問(wèn)題宵蛀。
(1)打開(kāi)/etc/yum.repos.d/xxxxxx.repo文件
(2)enabled=1改成enabled=0