nginx ("engine x") 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。
其主要有三個(gè)功能: (1)服務(wù)器(基本) (2)負(fù)載均衡 (3)nginx的緩存功能 今天先講述利用nginx如何搭建一個(gè)web服務(wù)器: 如果已經(jīng)做過(guò)web開(kāi)發(fā)的,就熟悉如何取搭建一個(gè)基本的web服務(wù)器而來(lái)跑自己的項(xiàng)目,在當(dāng)前基本上常用的IIS(windows)Apache(Linux),nginx是后期之秀,是在最近幾年才被企業(yè)所使用的服務(wù)器,其實(shí)在眾多服務(wù)器中能脫穎而出,是有其自身優(yōu)點(diǎn)的,據(jù)統(tǒng)計(jì)Apache使用率61.9%(比較穩(wěn)定),IIs使用率16.5%,該服務(wù)器易用前者比較容易搭建,而nginx現(xiàn)在占用使用率16.1%(后期之秀,效率比較高)。從這三個(gè)的比較我們能看出,nginx的主要特性使效率比較高,也使得成為現(xiàn)在的企業(yè)選擇之一。 接下來(lái),首先來(lái)看一下nginx和apache之間的區(qū)別,也使得我們?cè)谝院筮x擇服務(wù)的時(shí)候,能根據(jù)自己所需要的功能選擇自己需要的服務(wù)器: 1.nginx相對(duì)于apache的優(yōu)勢(shì): 首先nginx是輕量級(jí)的,如果使用其作為web服務(wù),起來(lái)起來(lái)時(shí)占用的內(nèi)存資源比較少,他可以支持更多的并發(fā)連接,體現(xiàn)更高的效率。其實(shí)在高并發(fā)的情況,使用nginx要比apache效率高的很多,nginx能夠支持高達(dá)50000個(gè)并發(fā)連接數(shù)的響應(yīng),這主要原因是nginx選擇的epoll and kqueue(可擴(kuò)展的事件復(fù)用技術(shù)),感興趣的可以了解一下epoll and kqueue技術(shù),其實(shí)select()和poll()的工作方式非常類似。 (1)抗并發(fā),nginx請(qǐng)求是異步非阻塞的,而apache是阻塞型的,在高并發(fā)下,nginx能保持低資源、低消耗高性能。 (2)nginx本來(lái)就是一個(gè)反向代理服務(wù)器,其負(fù)載均衡能力比較突出,nginx既可以在內(nèi)部支持Rails(符合實(shí)際高效的web開(kāi)發(fā)框架,其結(jié)合了php和java來(lái)發(fā)的一些優(yōu)點(diǎn))和php程序?qū)ν獠窟M(jìn)行服務(wù),可以作為Http服務(wù)器對(duì)外進(jìn)行服務(wù)。Nginx采用C語(yǔ)言進(jìn)行開(kāi)發(fā),無(wú)論是在系統(tǒng)開(kāi)銷(xiāo)還是內(nèi)存使用率都比Perlbal 要好很多。 2.apache相對(duì)于nginx的優(yōu)點(diǎn): 重寫(xiě)功能apache要比nginx的強(qiáng)大 nginx一般適合做靜態(tài)和反向代理,而動(dòng)態(tài)代理一般要考apache完成 apache相對(duì)于使用時(shí)間比較長(zhǎng),bug比較少,而nginx的bug比較多 3.核心區(qū)別 apache是同步多進(jìn)程模型一個(gè)連接對(duì)應(yīng)一個(gè)進(jìn)程,而nginx是異步的,多個(gè)連接(萬(wàn)級(jí)別)可以對(duì)應(yīng)一個(gè)進(jìn)程。 **_ 繼續(xù)上面完成內(nèi)容; _** 一般來(lái)說(shuō)需要具有性能的web服務(wù),最好選擇nginx,如果不需要性能只求穩(wěn)定則最好的選擇apache即可,apache的各種功能模塊實(shí)現(xiàn)的要比nginx好,并且可配置項(xiàng)也多。epoll網(wǎng)絡(luò)IO模型是nginx處理性能高的根本理由,但并不是所有的情況下都是epoll的性能高,如果本身提供靜態(tài)服務(wù)的,則apache的select模型要比nginx的epoll性能高。 Epoll: 對(duì)socket數(shù)量不限制 操作無(wú)限制:有活躍socket,內(nèi)核訪問(wèn)該socket的callback,不需要遍歷(nginx效率高的原因) select socket數(shù)量限制:該模式可操作的socket數(shù)有限,由FD_SETSIZE(C++)中的來(lái)決定,內(nèi)核默認(rèn)32*32=1024 操作限制:有活躍的socket,內(nèi)核訪問(wèn)socket時(shí),不管哪個(gè)活躍的socket都要遍歷一遍(apache慢的原因) 安裝nginx 官方最新的是nginx-1.3.16.tsr.gz 官方最新libevent-2.0.21-stable.tar.gz提供時(shí)間處理機(jī)制,linux5.4自帶的也行,默認(rèn)安裝了。 Pcre 以及pcre-devel,默認(rèn)pcre是安裝的 1.安裝pcre-devel,以及建立nginx用戶 yum install pcre-devel groupadd -r nginx useradd -r -g nginx -M nginx 2.解壓縮nginx的源碼并安裝 tar -zxvf nginx-1.3.16.tar.gz -C /usr/local/src cd /usr/local/src/nginx-1.2.16 ./configure --conf-path=/etc/nginx/bf --error-log-path=/var/log/nginx/error.log
--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_nodule --with-http_stub_ststatus_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/vat/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --with-pcre #make && make install #mkdir -p /var/tmp/nginx/client 3.啟動(dòng)nginx服務(wù)器并在客戶端做測(cè)試 /usr/local/nginx/sbin/nginx &
查詢nginx的啟動(dòng)狀態(tài) netstat -tupln |grep nginx 下面顯示: tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6965/nginx
客戶端瀏覽器輸入http://本機(jī)IP地址 至此,nginx安裝完成 3.實(shí)現(xiàn)虛擬主機(jī)(比較常用的功能) nginx的配置文件比較簡(jiǎn)單 基于IP的虛擬主機(jī) (1)準(zhǔn)備工作 增加一個(gè)網(wǎng)卡地址(原有的是192.168.17.33) ipconfig eth0:0 192.168.17.34 建立兩個(gè)站點(diǎn)目錄 mkdir /website1 mkdir /website2
建立兩個(gè)存放日志的目錄 mkdir /var/log/nginx/website1 mkdir /var/log/nginx/website2 創(chuàng)建兩個(gè)測(cè)試html
(2)修改配置文件 原有的配置文件中有一個(gè)默認(rèn)server節(jié)點(diǎn),然后在添加一個(gè)server節(jié)點(diǎn) server {
listen 192.168.17.33:80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/website1/access.log;
error_log /var/log/nginx/website1/error.log;
location / {
root /website1;
index inde;
}
error_page 404 /l;
# redirect server error pages to the static page /l
#
error_page 500 502 503 504 /l;
location = /l {
root html;
}
}
server {
listen 192.168.17.34:80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/website2/access.log;
error_log /var/log/nginx/website2/error.log;
location / {
root /website2;
index inde;
}
error_page 404 /l;
# redirect server error pages to the static page /l
#
error_page 500 502 503 504 /l;
location = /l {
root html;
}
}
(3)停掉原有的apache服務(wù) service httpd stop /usr/local/nginx/sbin/nginx &
(4)在客戶機(jī)分別訪問(wèn) 如果有該測(cè)試html內(nèi)容顯示,則證明配置成功。 4.配置創(chuàng)建證書(shū)的配置文件,以及創(chuàng)建證書(shū) vi /etc/pki/tls/f 45行dir=/etc/pki/CA 根據(jù)配置文件的需求創(chuàng)建此昂觀點(diǎn)額文件夾和文件 mkdir certs crl newcerts touch index.txt serial echo 01>> serial //初始化文件 創(chuàng)建私鑰
openssl genrsa 1024?private/cakey.pem chmod 600privat/cakey.pem //授權(quán) (2)建立nginx的安全目錄,并生成相關(guān)的私鑰和證書(shū)文件 mkdir /usr/local/nginx/certs cd /usr/local/nginx/certs openssl genrsa 1024>nginx.key chmod 600 nginx.key (3)修改nginx配置問(wèn)阿金,添加用于安全訪問(wèn)的站點(diǎn) server {
listen 192.168.17.33:443;
server_name ;
ssl on;
ssl_certificate /usr/local/nginx/certs/nginx.cert;
ssl_certificate_key /usr/local/nginx/certs/nginx.key;
ssl_session_timeout 5m;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index inde;
}
} (4)重啟nginx服務(wù),訪問(wèn) 首次訪問(wèn)的時(shí)候會(huì)提示風(fēng)險(xiǎn),選擇繼續(xù)瀏覽 (5)修改web證書(shū) cp /etc/pki/CA/cacert.pem /usr/local/nginx/certs cd /usr/local/nginx/certs cat cacert.pem>>nginx.cert 重啟nginx,訪問(wèn),安裝正式即可。
分享題目:nginx的三大功能(之一服務(wù)器)
文章分享:http://m.rwnh.cn/article48/cgesep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、Google、自適應(yīng)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)