Nginx 是由俄羅斯人 Igor Sysoev 設計開發的,開發工做從2002 年開始,第一次公開發布在 2004 年 10 月 4 日。前端
官方網站爲:http://nginx.org/ 。它是一款免費開源的高性能 HTTP 代理服務器及反向代理服務器(Reverse Proxy)產品,同時它還能夠提供 IMAP/POP3 郵件代理服務等功能。它高併發性能很好,官方測試可以支撐 5 萬的併發量;運行時內存和 CPU 佔用率低,配置簡單,容易上手,並且運行很是穩定。linux
其實 Nginx 的功能特別多,這裏我只介紹幾個經常使用的功能,具體的你們能夠參考官網介紹。nginx
①、反向代理c++
這是 Nginx 服務器做爲 WEB 服務器的主要功能之一,客戶端向服務器發送請求時,會首先通過 Nginx 服務器,由服務器將請求分發到相應的 WEB 服務器。正向代理是代理客戶端,而反向代理則是代理服務器,Nginx 在提供反向代理服務方面,經過使用正則表達式進行相關配置,採起不一樣的轉發策略,配置至關靈活,並且在配置後端轉發請求時,徹底不用關心網絡環境如何,能夠指定任意的IP地址和端口號,或其餘類型的鏈接、請求等。正則表達式
②、負載均衡算法
這也是 Nginx 最經常使用的功能之一,負載均衡,一方面是將單一的重負載分擔到多個網絡節點上作並行處理,每一個節點處理結束後將結果彙總返回給用戶,這樣能夠大幅度提升網絡系統的處理能力;另外一方面將大量的前端併發請求或數據流量分擔到多個後端網絡節點分別處理,這樣能夠有效減小前端用戶等待相應的時間。而 Nginx 負載均衡都是屬於後一方面,主要是對大量前端訪問或流量進行分流,已保證前端用戶訪問效率,並能夠減小後端服務器處理壓力。windows
③、Web 緩存後端
在不少優秀的網站中,Nginx 能夠做爲前置緩存服務器,它被用於緩存前端請求,從而提升 Web服務器的性能。Nginx 會對用戶已經訪問過的內容在服務器本地創建副本,這樣在一段時間內再次訪問該數據,就不須要經過 Nginx 服務器向後端發出請求。減輕網絡擁堵,減少數據傳輸延時,提升用戶訪問速度。瀏覽器
關於 Nginx 的安裝,分爲在 Windows 平臺和 Linux 平臺安裝,Windows 版本的 Nginx 服務器在效率上要比 Linux 版本的 Nginx 服務器差一些,並且實際使用的通常都是 Linux 平臺的 Nginx 服務器。因此後期咱們介紹時也會以 Linux 版本的爲主。
Nginx 下載地址:http://nginx.org/en/download.html
開發版本主要用於 Nginx 軟件項目的研發,穩定版本說明能夠做爲 Web 服務器投入商業應用。這裏咱們選擇當前穩定版本:nginx-1.14.0
咱們將上一步下載的 nginx-1.14.0.zip 文件解壓到當前目錄。
解壓目錄以下:
下面對這個目錄下的主要文件夾進行介紹:
一、conf 目錄:存放 Nginx 的主要配置文件,不少功能實現都是經過配置該目錄下的 nginx.conf 文件,後面咱們會詳細介紹。
二、docs 目錄:存放 Nginx 服務器的主要文檔資料,包括 Nginx 服務器的 LICENSE、OpenSSL 的 LICENSE 、PCRE 的 LICENSE 以及 zlib 的 LICENSE ,還包括本版本的 Nginx服務器升級的版本變動說明,以及 README 文檔。
三、html 目錄:存放了兩個後綴名爲 .html 的靜態網頁文件,這兩個文件與 Nginx 服務器的運行相關。
四、logs 目錄:存放 Nginx 服務器運行的日誌文件。
五、nginx.exe:啓動 Nginx 服務器的exe文件,若是 conf 目錄下的 nginx.conf 文件配置正確的話,經過該文件便可啓動 Nginx 服務器。
1、啓動 nginx
雙擊解壓以後目錄中的 nginx.exe 文件,出現一閃而過的畫面,則啓動成功。
而後在瀏覽器中輸入 http://localhost 或者 http://localhost:80 出現以下界面即啓動成功。
ps:該頁面便是上面解壓目錄中 html 目錄下的 index.html 文件。
2、關閉 nginx
進入到解壓以後的目錄,輸入以下命令:
1 nginx.exe -s stop
或者也能夠打開任務管理器,找到 nginx 的進程,直接右鍵結束。
選擇的 Linux 系統爲 CentOS6.8。
1、安裝 nginx 環境
1 yum install gcc-c++ 2 yum install -y pcre pcre-devel 3 yum install -y zlib zlib-devel 4 yum install -y openssl openssl-devel
對於 gcc,由於安裝nginx須要先將官網下載的源碼進行編譯,編譯依賴gcc環境,若是沒有gcc環境的話,須要安裝gcc。
對於 pcre,prce(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx的http模塊使用pcre來解析正則表達式,因此須要在linux上安裝pcre庫。
對於 zlib,zlib庫提供了不少種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,因此須要在linux上安裝zlib庫。
對於 openssl,OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。nginx不只支持http協議,還支持https(即在ssl協議上傳輸http),因此須要在linux安裝openssl庫。
2、編譯安裝
首先將下載的 nginx-1.14.0.tar.gz 文件複製到 Linux 系統中,而後解壓:
1 tar -zxvf nginx-1.14.0.tar.gz
接着進入到解壓以後的目錄,進行編譯安裝。
1 ./configure --prefix=/usr/local/nginx 2 make 3 make install
注意:指定 /usr/local/nginx 爲nginx 服務安裝的目錄。
3、啓動 nginx
進入到 /usr/local/nginx 目錄,文件目錄顯示以下:
接着咱們進入到 sbin 目錄,經過以下命令啓動 nginx:
./nginx
固然你也能夠配置環境命令,這樣在任意目錄都能啓動 nginx。
Linux 沒有消息就好消息,不提示任何信息說明啓動成功。
或者也能夠輸入以下命令,查看 nginx 是否有服務正在運行:
ps -ef | grep nginx
而後咱們在瀏覽器輸入Linux系統的IP地址,出現windows安裝成功的界面便可。
4、關閉 nginx
有兩種方式:
方式1:快速中止
1 cd /usr/local/nginx/sbin 2 ./nginx -s stop
此方式至關於先查出nginx進程id再使用kill命令強制殺掉進程。不太友好。
方式2:平緩中止
1 cd /usr/local/nginx/sbin 2 ./nginx -s quit
此方式是指容許 nginx 服務將當前正在處理的網絡請求處理完成,但不在接收新的請求,以後關閉鏈接,中止工做。
5、重啓 nginx
方式1:先中止再啓動
1 ./nginx -s quit 2 ./nginx
至關於先執行中止命令再執行啓動命令。
方式2:從新加載配置文件
1 ./nginx -s reload
一般咱們使用nginx修改最多的即是其配置文件 nginx.conf。修改以後想要讓配置文件生效而不用重啓 nginx,即可以使用此命令。
6、檢測配置文件語法是否正確
方式1:經過以下命令,指定須要檢查的配置文件
1
|
nginx -t -c /usr/local/nginx/conf/nginx.conf
|
方式2:經過以下命令,不加 -c 參數,默認檢測nginx.conf 配置文件。
nginx -t