Nginx入門案例(Mac版)

2021-08-07 13:43:57 字數 4167 閱讀 8002

nginx(engine x)是乙個輕量級、高效能的web反向**伺服器,也是乙個imappop3smtp伺服器,並且安裝十分簡單,配置檔案非常簡潔,啟動特別容易,執行十分穩定,幾乎可以做到7*24小時不間斷執行,在國內大廠(如:batj)均得到廣泛應用。

nginx是乙個開源專案,原始碼以類bsd許可證的形式發布,任何人都可以獲取到,來一探nginx的強大之處。

nginx的特性有很多,最常用的就是web伺服器、反向**和負載均衡等,下面對這些特性做簡要介紹:

1. web伺服器

nginx作為乙個web伺服器,相比apache,使用更少的資源,支援更多的併發,最高的並發達50000個,而tomcat則只有500左右。

2. 反向**

有反向**,那麼就有正向**,這是兩種不同的**模式,分析如下:

正向**

正向**伺服器架設在客戶端,用於**客戶端的網路請求,客戶端要先把網路請求傳送到**伺服器,然後由**伺服器去請求目標伺服器。最常用的就是vpn,尤其是國內無法直接訪問許多**,老司機們會經常fq去訪問,就是正向**的模式。

反向**

反向**伺服器是架設在伺服器端,通過緩衝常用請求頁面來提高伺服器的工作效率,將客戶端的請求(可能是多個網域名稱的請求)**給內部對應的伺服器,然後把伺服器的處理結果返回給客戶端。實現原理是:多個網域名稱可以繫結到同乙個ip,通過反向**,在伺服器內部把請求的網域名稱等資訊解析到對應的伺服器,然後提供服務。

3. 負載均衡:

nginx內部直接支援railsphp,也支援作為http伺服器來對外提供服務;nginx採用c編寫,其資源開銷比較少、使用效率比較高。可以把客戶端的請求分配到多個同級伺服器,也可以根據伺服器的效能,設定不同的權重,如加大效能高的伺服器的負載量等。

nginx的安裝和應用比較簡單,配置也十分方便,下面簡單介紹一下nginx的具體使用(只是入門案例)

1. 安裝

nginx的安裝有多種方式,比較簡單的就是用brew安裝:

brew install nginx
如果你沒有安裝brew,想重新編譯原始碼安裝,那麼可以參考這個文件

使用brew安裝成功後,nginx的安裝和配置目錄不在一起,具體如下:

安裝目錄/usr/local/cellar/nginx/1.12.1/

配置目錄/usr/local/etc/nginx/

工作目錄/usr/local/var/www,在安裝目錄下有乙個軟連線www,指向本目錄

可以輸入localhost:8080測試一下,安裝成功的結果如下:

2. 反向**

請求過程:

1.) 訪問www.sina.com:8086,在本地hosts解析網域名稱後,找到ip127.0.0.1(此處是本地ip)的伺服器,然後由nginx**請求

2.)nginx根據請求的鏈結(網域名稱+埠號)www.sina.com:8086找到對應的server節點,具體是由proxy_pass指定的upstream中的server的位址

3.) 由server響應請求,返回資料進行展示

配置過程:

1.) 反向**的測試用了2tomcat模擬http伺服器,並分別修改tomcat的埠為:80828083;其中,在修改tomcat埠時,需要把serverconnectorport都修改,保證各個tomcat之間不重複。

2.) 然後修改系統的本地dns對映,在/etc/hosts檔案中,新增如下配置:

127.0.0.1   www.sina.com

127.0.0.1 www.sohu.com

3.) 修改nginx的配置檔案/usr/local/etc/nginx/nginx.conf,新增如下配置:

# 負載均衡

upstream sohu

server

}upstream sina

server

}

如果以上配置完成後,要重啟nginx

nginx -s reload
重啟完成後,就可以用不同網域名稱,同一埠號,訪問伺服器了:

訪問:www.sohu.com:8086

訪問:www.sina.com:8086

如果你想用80埠號,即預設埠號訪問(可以只輸入網域名稱),可以參考這裡

3. 負載均衡

nginx負載均衡的配置十分簡單,只要重新開啟乙個tomcat伺服器,然後把伺服器的位址新增到upstream中即可,如新增乙個127.0.0.1:8085的伺服器:

upstream sina 

server

}

配置完成後進行測試,輸入www.sina.com:8086後,在不是本地快取的情況下,可以交替顯示兩個伺服器的內容,如下:

這是127.0.0.1:8085的伺服器的內容,和上面的圖3對比可以看到:同乙個**,是由不同的伺服器來響應的,即達到了負載均衡的功能。

補充說明

upstream sina
nginx的入門案例介紹到此,如果想深入學習,可以參考這裡,這是nginx的中文開發文件。如果文中有不足之處,歡迎指出,共同學習。

參考資料

nginx

使用nginx實現反向**

os x - 在80埠啟動nginx

nginx中文文件

Nginx入門簡易版

1.centos8安裝nginx使用命令 yum install nginx 2.啟動命令 systemctl start nginx 3.在window系統訪問linux的ip位址,在訪問之前先開放防火牆的埠號 設定名稱myserver upstream myserver location mys...

Hibernate入門 入門案例

4.1 資料庫建立表 create table cst customer cust id bigint 32 not null auto increment comment 客戶編號 主鍵 cust name varchar 32 not null comment 客戶名稱 公司名稱 cust so...

struts入門案例

2.請求為了交給struts處理,這時需要匯入struts開發包 導包時注意,把版本過低的jar包 commons beanutils 1.7.0.jar jstl 1.0.2.jar standard 1.0.2.jar 替換成自己的高版本的jar包 3.在web.xml檔案中配置struts的a...