1、背景前端
以前測試的項目先後端的"路由"(負責把前端發過來的請求轉發到相應的後端服務上)要用Nignx來取代原來的tomcat的http server功能,作這個替換的緣由是Nignx輕量級,抗併發,處理靜態文件好。java
Nignx經常使用作靜態內容服務和代理服務器,直接外來請求轉發給後面的應用服務器(tomcat,Django等),tomcat更多用來作一個應用容器,讓java web app泡在裏面的東西。nginx
嚴格意義上來說,Nignx應該叫作HTTP Server,而tomcat是一個Application Server是一個Servlet/JSO應用的容器。c++
客戶端經過HTTP Server(Nignx)訪問服務器上存儲的資源(HTML文件,圖片文件等),HTTP Server(Nignx)只是把服務器上的文件經過HTTP協議傳輸給客戶端。web
應用服務器(tomcat)每每是運行在HTTP Server(Nignx)的背後,執行應用,將動態的內容轉化爲靜態的內容以後,經過HTTP Server(Nignx)分發到客戶端。後端
請求的流轉過程概圖:tomcat
注意:nginx只是把請求作了分發,不作處理!!!服務器
2、Nginx環境搭建併發
一、下載app
二、解壓
# tar -xzf nginx-1.16.1.tar.gz
三、安裝依賴的基礎組件
由於nginx默認會依賴一些基礎組件,這些依賴組件主要有g++,gcc, openssl-devel, pcre-devel和zlib-devel,因此在正式安裝nginx前最好先安裝好這些組件。可使用yum一次性安裝,運行如下命令:
# yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
四、進入安裝包目錄、編譯安裝
# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 # make # make install
五、查看nginx版本
# nginx -v
顯示版本號,說明安裝成功
3、使用
一、配置文件
Nginx的配置文件默認爲nginx.conf,我這裏經過新建了一個conf.d文件夾和.conf文件(.conf文件具體的內容參考nginx.conf)來完成配置,具體以下:
upstream模塊要負責負載均衡的配置,經過默認的輪詢調度方式來分發請求到後端服務器
-- max_fails:表示失敗最大次數,超過失敗最大次數暫停服務
-- fail_timeout:表示若是請求受理失敗,暫停指定的時間以後從新發起請求
二、Nginx的啓動
直接輸入nginx命令,便可啓動
# nginx
還能夠經過systemctl來啓動nginx
# systemctl start nginx
三、Nginx的中止
nginx的中止有兩種方式,分別是 1. nginx -s stop命令 2. kill -9 nginx_pid命令 # nginx_pid指的是主進程的pid號
同理,也能夠經過systemctl來中止nginx
# systemctl stop nginx
須要說明的是,使用systemctl命令結束nginx進程時,只有經過systemctl啓動的nginx才能被正常結束,而經過運行nginx命令啓動的進程是不能被正常結束的。
使用kill命令來結束nginx進程。結束nginx進程的信號有兩個,分別是TERM和QUIT:
# kill -s QUIT nginx_pid
# kill -s TERM nginx_pid
前者(QUIT)用於快速中止nginx,後者(TERM)用於平緩中止nginx,區別在於平緩中止nginx會等待工做進程將請求結束之後再中止。
四、Nginx的配置文件重載
nginx的配置文件重載,這也是一個很重要的功能,由於不少時候須要修改nginx的配置文件,修改完成後須要從新加載配置文件,方法有2個
1. nginx -s reload 2. kill -s HUP nginx_pid命令