沒有聽過nginx?那麼一定聽過它的"同行"apache吧!nginx同apache一樣都是一種web伺服器。基於rest架構風格,以uri或者url作為溝通依據,通過http協議提供各種網路服務。然而,這些伺服器在設計之初受到當時環境的侷限,例如當時的使用者規模,網路頻寬,產品特點等侷限並且各自的定位和發展都不盡相同。這也使得各個web伺服器有著各自鮮明的特點。
apache的發展時期很長,而且是毫無爭議的世界第一大伺服器。它有著很多優點:穩定、開源、跨平台等等。它出現的時間太長了,它興起的年代,網際網路產業遠遠比不上現在。所以它被設計為乙個重量級的。它不支援高併發的伺服器。在apache上執行數以萬計的併發訪問,會導致伺服器消耗大量記憶體。作業系統對其進行程序或執行緒間的切換也消耗了大量的cpu資源,導致http請求的平均響應速度降低。
這些都決定了apache不可能成為高效能web伺服器,輕量級高併發伺服器nginx就應運而生了。
俄羅斯的工程師igor sysoev,他在為rambler media工作期間,使用c語言開發了nginx。nginx作為web伺服器一直為rambler media提供出色而又穩定的服務。然後呢,igor sysoev將nginx**開源,並且賦予自由軟體許可證。
由於:
所以,nginx火了!
nginx是一款自由的、開源的、高效能的http伺服器和反向**伺服器;同時也是乙個imap、pop3、smtp**伺服器;nginx可以作為乙個http伺服器進行**的發布處理,另外nginx可以作為反向**進行負載均衡的實現。之前keepalived請求服務只能是本地伺服器之間跳轉(乙個區域網裡面),無法實現跨域訪問,但是往往很多電商平台,他們的伺服器不是集中在乙個機房(區域網)裡面的,有的在北京,有的在上海、杭州這些地方,要想讓服務繼續執行,這裡就得用nginx進行反向**模式,使之能夠跨域訪問。在高連線併發的情況下,nginx是apache伺服器不錯的替代品。(你就把他想成能跨域訪問的apache伺服器)
開機狀態為四個虛擬機器做快照,備份node01,02,03,04四個伺服器,然後開始重新配置環境:
[root@node01 ~]# ifconfig eth0:2 down
[root@node01 ~]# ipvsadm -c
[root@node01 tengine-2.1.0]# service keepalived stop
[root@node04 ~]# service keepalived stop
在node01伺服器上安裝nginx。
[root@node01 soft]# tar zxvf tengine-2.1.0.tar.gz
先把這些伺服器的yum源配置好。
mv /etc/yum.repos.d/centos-base.repo /etc/yum.repos.d/centos-base.repo.backup
curl -o /etc/yum.repos.d/centos-base.repo
yum clean all
yum makecache
[root@node01 tengine-2.1.0]# yum install gcc
[root@node01 tengine-2.1.0]# yum install pcre-devel.x86_64
yum install openssl-devel
[root@node01 tengine-2.1.0]# ./configure --prefix=/opt/neusoft/nginx
make
make install
進入目錄:[root@node01 nginx]# cd /etc/init.d/
[root@node01 init.d]# chkconfig #此命令檢視沒有nginx的服務,如果需要就要在這裡配置。
[root@node01 init.d]# vi nginx
將nginx附件裡面的內容全部貼上到該檔案中。
指令碼編譯完成後需要授權:
[root@node01 init.d]# chmod +x nginx
[root@node01 init.d]# service nginx status #上面配置好後這裡就可以有狀態和啟動停止了。
[root@node01 init.d]# chkconfig nginx on #設定開機啟動
反向**:客戶端訪問要跟nginx握手,然後nginx在跟realserver伺服器握手。nginx也是為了解決高併發的問題。
[root@node01 init.d]# cd /opt/neusoft/nginx/conf/
[root@node01 conf]# cp nginx.conf nginx.conf.bak
[root@node01 conf]# vi nginx.conf
配置檔案解析:
server服務:
listen:監聽埠
**服務
正常情況下,乙個web容器執行在一台伺服器上,儘管這個web容器,如:tomcat,下面可以部署多個web專案,但是這些web專案的頂級網域名稱都是乙個位址,也就是說使用者訪問的位址其實還是乙個。只不過是二級或**位址來區分專案名稱。nginx的特點就是也能模擬乙個web容器下有不同的專案的模式,但是訪問的位址可以跨域訪問。
反向**配置成功。
執行過程分析:使用者在瀏覽器訪問**的時候,根據hosts的對映來匹配node01這個伺服器,的預設80埠,這個時候被node01伺服器的nginx所監聽,處理,根據server_name來匹配**還是qq,匹配對應的server_name後來做location響應,返回狀態碼:888或666。
配置好後存檔退出:
這種模式可以通過url對映**到伺服器的某個目錄下。
[root@node01 conf]# cd /opt/neusoft/nginx/html/
[root@node01 html]# mkdir abc
[root@node01 html]# cd abc/
[root@node01 abc]# vi i1.html
在windows系統上的hosts檔案中配置:192.168.43.170 node01 www.qq.com
www.taobao.com
www.jd.com
[root@node01 conf]# service nginx reload
在瀏覽器中訪問京東:
Nginx 安裝以及配置
nginx ngine x,是一款自由的 開源的 高效能http伺服器和反向 伺服器 也是乙個imap pop3 smtp 伺服器 也就是說nginx本身就可以託管 類似於tomcat一樣 進行http服務處理,也可以作為反向 伺服器使用。其實最直接的用處就是作為負載均衡器,雖然目前nginx的份額...
windows安裝以及配置nginx
2 解壓到相應的目錄 3 進入nginx目錄 雙擊nginx.exe 來啟動nginx,雙擊 exe檔案,一閃而過,此時想要確定是否啟動成功,可以直接開啟任務管理器檢視 4 訪問預設頁面 nginx啟動後,在瀏覽器中訪問http localhost,可以看到預設的歡迎頁面 5.配置nginx 配置專...
nginx配置詳解以及常用配置示例
常用方案配置 常見問題 nginx中文網 預設的 nginx 配置檔案 nginx.conf 內容如下 全域性塊 events http http塊 location pattern server upstream http全域性塊 nginx s reload nginx t server 設定h...