還在擼貓麼?來試試Nginx吧

什麼是Nginx

在web時代,apache、tomcat、undertow都是大名鼎鼎的web服務容器,但是今天編者要介紹的是另一款web服務器nginx,可能大家並沒有聽過。但是Nginx同Apache一樣都是一種WEB服務器。基於REST架構風格,以統一資源描述符(Uniform Resources Identifier)URI或者統一資源定位符(Uniform Resources Locator)URL作為溝通依據,通過HTTP協議提供各種網絡服務。Apache的發展時期很長,在Apache大行其道的時代,互聯網產業遠比不上現在。所以它被設計為一個重量級的。它不支持高併發的服務器。在Apache上運行數以萬計的併發訪問,會導致服務器消耗大量內存。操作系統對其進行進程或線程間的切換也消耗了大量的CPU資源,導致HTTP請求的平均響應速度降低。這些都決定了Apache不可能成為高性能WEB服務器,輕量級高併發服務器Nginx就應運而生了。而要真正的對Nginx下一個定義,它究竟是什麼,能幹些什麼呢?Nginx是一款自由的、開源的、高性能的HTTP服務器和反向代理服務器;同時也是一個IMAP、POP3、SMTP代理服務器;Nginx可以作為一個HTTP服務器進行網站的發佈處理,另外Nginx可以作為反向代理進行負載均衡的實現。

反向代理又是個什麼鬼

在瞭解反向代理之前,我們先來聊聊啥是正向代理。正向代理,架設在客戶機與目標主機之間,只用於代理內部網絡對Internet的連接請求,客戶機必須指定代理服務器,並將本來要直接發送到Web服務器上的http請求發送到代理服務器中。典型的正向代理應用場景有哪些?各位看官看著這裡馬上就可能會脫口而出了,找個代理服務器翻牆就是正向代理的典型應用。不錯,那麼對應的反向代理又是什麼呢?所謂反向代理,就是架設在服務器端,通過緩衝經常被請求的頁面來緩解服務器的工作量,將客戶機請求轉發給內部網絡上的目標服務器;並將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器與目標主機一起對外表現為一個服務器。明白了吧,正向代理就是為我們這些散戶服務的,而反向代理是為那些有服務資源的莊家服務的。

Nginx的安裝

  • 首先進入到http://nginx.org/en/download.html進行安裝包的下載
還在擼貓麼?來試試Nginx吧


  • 注意自己的操作系統,裡面的安裝包有的是針對linux環境下的,有的是針對window環境下的,看官注意自行區分一下。
  • 安裝Nginx,對下載後的Nginx壓縮包進行解壓
還在擼貓麼?來試試Nginx吧


  • 啟動Nginx。有兩種方式,一種是直接雙擊運行上圖中的Nginx.exe,另外一種就是
  • 打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe 或者 start nginx。
  • 採取以上兩種方式啟動了Nginx後,可以通過在瀏覽器中訪問http://localhost:80來驗證Nginx是否成功啟動,如果一切正常的話,瀏覽器頁面中應該出現下圖:
還在擼貓麼?來試試Nginx吧


  • 配置Nginx
  • 可能各位看官注意到了,瀏覽器中的訪問端口是8999,這是因為不好意思我的80端口被佔用了,所以我把Nginx的服務端口改了,那麼如何修改Nginx的服務端口以及其他的配置呢?秘密就在安裝路徑下的conf文件夾下的nginx.conf文件:
還在擼貓麼?來試試Nginx吧


  • 看到沒有,這裡被改成了8999,同時告訴大家,當我們修改了nginx的配置文件nginx.conf 時,不需要關閉nginx後重新啟動nginx,只需要執行命令 nginx -s reload 即可讓改動生效。
  • 關閉Nginx。如果使用cmd命令窗口啟動nginx,關閉cmd窗口是不能結束nginx進程的,可使用兩種方法關閉nginx:
  1. 輸入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
  2. 使用taskkill taskkill /f /t /im nginx.exe

Nginx的安裝先講到這裡,那麼如何利用nginx代理服務器做負載均衡呢?請聽下回分解!


分享到:


相關文章: