Nginx講解、安裝與配置文件說明

1.Nginx基本概念

1.1Nginx是什麼,做什麼事情

Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發佈於2004年10月4日
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特點是佔有內存少,併發能力強,事實上nginx的併發能力在同類型的網頁服務器中表現較好。
Nginx可以作爲靜態頁面的web服務器,同時還支撐CGI協議的動態語言,比如:perl、php等。但是不支持java,Java程序只能通過與tomcat配合完成,Nginx專爲性能優化而開發,性能是其中最重要的考量,實現上非常注重效率,能經受高負載的考驗,有報告表明能支持5萬個併發連接數。

1.2反向代理

1.2.1正向代理

Nginx不僅可以做反向代理,實現負載均衡,還能用作正向代理進行上網等功能。
如果把局域網外的Internet想象成一個巨大的資源庫,則局域網中的客戶端要訪問Internet,則需要通過代理服務器來訪問,這種代理服務器就稱爲正向代理。
即:在我們的客戶端配置代理服務器,通過代理服務器進行互聯網的訪問
在這裏插入圖片描述

1.2.1反向代理

反向代理,其實客戶端對代理是無感知的,因爲客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據後,再返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的代理服務器地址,隱藏裏真是的服務器IP地址
在這裏插入圖片描述

1.3負載均衡

15個請求,通過反向代理服務器,把請求平均分配到集羣中的服務器去處理。

1.4動靜分離

爲加快網站的解析速度,可以把動態頁面和靜態頁面由不同的服務器來解析,加快解析速度,降低原來單個服務器的壓力。

2.Nginx安裝、常用命令和配置文件

2.1在Linux裏安裝

  1. 遠程連接工具連接服務器
  2. 下載tar.gz軟件
  3. 在安裝之前,需要先安裝一些相關的依賴
    pcre
    openssl
    zlib

yum -y install make zlib zlib-devel gcc-c++ libtoll openssl-devel

  • 安裝pcre,把pcre包放到服務器
  • 解壓
  • 進入解壓目錄,執行./configure
  • 使用make && make install
  • 安裝之後使用pcre-config --version查看版本
  1. 安裝nginx
  • 放入Linux中
  • 解壓
  • 進入解壓目錄
  • 執行./configure
  • 使用make && make install
  • cd /usr/local會有一個nginx文件夾
  • 添加防火牆端口

2.2常用命令

使用命令的前提條件要進入nginx的目錄裏:cd /usr/local/nginx/sbin

  1. 查看nginx版本號·
    ./nginx -v
  2. 啓動nginx
    ./nginx
  3. 關閉nginx
    ./nginx -s stop`
  4. 重新加載nginx
    ./nginx -s reload

2.3配置文件

配置文件位置/usr/local/nginx/conf/裏的nginx.conf

有三部分組成:

全局塊

從配置文件開始到events塊之間的內容,主要會設置一些影響nginx服務器整體運行的配置指令,主要包括配置運行Nginx服務器的用戶(組)允許生成worker process數,進程PID存放路徑、日誌存放路徑和類型以及配置文件的引入等

worker_provesses 1; #Nginx服務器併發處理服務器的關鍵配置,worker_provesser值越大,可以支持的併發數量也越多,但會受到硬件、軟件等設備的制約

events塊

events塊設計的指令主要影響Nginx服務器與用戶的網絡連接(常用的設置包括是否開啓對多work process下的網絡連接進行序列化,是否同時接收多個網絡連接,選取那些事件驅動模型來處理連接請求,每個work process可以同時支持的最大連接數量等)

work_connections 1024; #支持最大連接數,這個對Nginx的性能影響較大,在實際應用中靈活配置

http塊

這個模塊是Nginx服務器配置中最頻繁的部分,代理、緩存和日誌定義等絕大多數功能和第三方模塊的配置都在這裏。
注意:http塊也可以包括http全局塊和server塊

  1. http塊
    http全局塊配置的指令包括文件引入、MIME-TYPE定義、日誌自定義、連接超時時間、單鏈接請求上限等
  2. server塊
    這塊和虛擬主機有密切關係,虛擬機從用戶角度看和一臺獨立的硬件主機是完全一樣的,該技術的生產是爲了節省互聯網服務器硬件成本。
    每個http塊可以包括多個server塊,而每個server塊就相當於一個虛擬主機
    而每個server塊也分爲全局server塊,以及可以同時包含多個location塊
  • 全局server塊
    最常見的配置是本虛擬主機的監聽配置和本虛擬主機的名稱和IP
  • location塊
    一個server塊可以配置多個location塊
    這個塊主要作用時基於Nginx服務器接收的請求字符串(例如server_name/uri-string),對虛擬主機名稱(也可以是IP別名)之外的字符串(例如:前面的/uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊也在這裏進行。

3.nginx配置反向代理

3.1實現效果

打開瀏覽器,在瀏覽器地址欄輸入地址,跳轉到Linux系統Tomcat主頁面中。

3.2具體實現

  1. 在Linux中安裝Tomcat,使用默認8080端口

4.nginx配置負載均衡

5.nginx配置動靜分離

6.nginx配置高可用集羣

7.nginx執行原理

文文的博客,如有問題留言指正~
未完待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章