一、安裝Nginx
1、準備作業
(1)打開虛擬機,使用遠程連接工具連接 linux 作業系統
(2)到 nginx 官網下載軟體:http://nginx.org/
2、開始進行 nginx 安裝
(1)安裝 pcre 依賴
第一步 聯網下載 pcre 壓縮檔案依賴
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
第二步 解壓壓縮檔案
使用命令 tar –xvf pcre-8.37.tar.gz
第三步./configure 完成后,回到 pcre 目錄下執行 make,最后執行 make install
查看pcre依賴是否安裝成功:pcre-config --version
(2)安裝 openssl 、zlib 、 gcc 依賴
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安裝 nginx
-
使用命令解壓
-
./configure
-
make && make install
進入目錄 /usr/local/nginx/sbin/nginx 啟動服務,安裝后,不能訪問的,需要對防火墻進行設定,也可以直接關閉防火墻,并防止自啟(在練習模式中),
//關閉防火墻&&防火墻自啟
systemctl stop firewalld && systemctl disable firewalld
//安裝Iptables管理工具&&啟動Iptables&&設為Iptables開機自啟&&清空Iptables規則&&保存Iptables默認規則
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save
① 查看開放的埠
firewall-cmd --list-all

② 設定開放的埠號
firewall-cmd --add-service=http –permanent
firewall-cmd --add-port=80/tcp --permanent
③ 設定之后需要重啟防火墻
firewall-cmd --reload
④ 訪問成功

二、Nginx常用命令
進入 nginx 目錄中: cd /usr/local/nginx/sbin
1、查看 nginx 版本號
./nginx -v
2、啟動 nginx
./nginx
查看是否啟動成功:ps -ef|grep nginx
3、停止 nginx
./nginx -s stop
4、重新加載 nginx
./nginx -s reload
三、nginx.conf組態檔
1、位置
vim /usr/local/nginx/conf/nginx.conf
2、組態檔中的內容(包含三部分)
(1)全域塊:配置服務器整體運行的配置指令
從組態檔開始到 events 塊之間的內容,主要會設定一些影響 nginx 服務器整體運行的配置指令,主要包括配置運行 Nginx 服務器的用戶(組)、允許生成的 worker process 數,行程 PID 存放路徑、日志存放路徑和型別以及組態檔的引入等,
比如上面第一行配置的:這是 Nginx 服務器并發處理服務的關鍵配置,worker_processes 值越大,可以支持的并發處理量也越多,但是會受到硬體、軟體等設備的制約,

(2)events 塊:影響 Nginx 服務器與用戶的網路連接
events 塊涉及的指令主要影響 Nginx 服務器與用戶的網路連接,常用的設定包括是否開啟對多 work process下的網路連接進行序列化,是否允許同時接收多個網路連接,選取哪種事件驅動模型來處理連接請求,每個 word process 可以同時支持的最大連接數等,
上述例子就表示每個 work process 支持的最大連接數為 1024,這部分的配置對 Nginx 的性能影響較大,在實際中應該靈活配置,

(3)http 塊
這算是 Nginx 服務器配置中最頻繁的部分,代理、快取和日志定義等絕大多數功能和第三方模塊的配置都在這里,需要注意的是:http 塊也可以包括 http 全域塊、server 塊,

①、http 全域塊
http 全域塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時時間、單鏈接請求數上限等,

②、server 塊
這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一臺獨立的硬體主機是完全一樣的,該技術的產生是為了節省互聯網服務器硬體成本,每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當于一個虛擬主機,而每個 server 塊也分為全域 server 塊,以及可以同時包含多個 locaton 塊,

全域 server 塊
最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或 IP 配置,
location 塊
一個 server 塊可以配置多個 location 塊,
這塊的主要作用是基于 Nginx 服務器接收到的請求字串(例如 server_name/uri-string),對虛擬主機名稱(也可以是 IP 別名)之外的字串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理,地址定向、資料快取和應答控制等功能,還有許多第三方模塊的配置也在這里進行,


還等什么小編推薦自己的linuxC/C++語言交流群:【1106675687】整理了一些個人覺得比較好的學習書籍、視頻資料共享在群檔案里面,有需要的可以自行添加哦!前100名進群領取,額外贈送一份價值199的C/C++、linux資料包含(視頻教程、電子書、實戰專案及代碼)
四、Nginx 反向代理實體
1、實作效果
打開瀏覽器,在瀏覽器地址欄輸入地址 www.123.com,跳轉到 liunx 系統 tomcat 主頁面中
2、準備作業
(1)在 liunx 系統安裝 tomcat,使用默認埠 8080
-
tomcat 安裝檔案放到 liunx 系統中,解壓
-
進入 tomcat 的 bin 目錄中,./startup.sh 啟動 tomcat 服務器
(2)對外開放訪問的埠
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd –reload
查看已經開放的埠號
firewall-cmd --list-all
(3)在 windows 系統中通過瀏覽器訪問 tomcat 服務器
3、訪問程序的分析

4、具體配置
第一步 在 windows 系統的 host 檔案進行域名和 ip 對應關系的配置

添加內容在 host 檔案中


第二步 在 nginx 進行請求轉發的配置(反向代理配置)
5、最終測驗

五、Nginx 反向代理實體
1、實作效果
使用 nginx 反向代理,根據訪問的路徑跳轉到不同埠的服務中nginx 監聽埠為 9001,
- 訪問 http://192.168.17.129:9001/edu/ 直接跳轉到 127.0.0.1:8080
- 訪問 http:// 192.168.17.129:9001/vod/ 直接跳轉到 127.0.0.1:8081
2、準備作業
(1)準備兩個 tomcat 服務器,一個 8080 埠,一個 8081 埠
(2)創建檔案夾和測驗頁面
3、具體配置
(1)找到 nginx 組態檔,進行反向代理配置

(2)開放對外訪問的埠號 9001 8080 8081
4、最終測驗

六、Nginx 配置實體-負載均衡
1、實作效果
(1)瀏覽器地址欄輸入地址 http://192.168.17.129/edu/a.html,負載均衡效果,平均 8080和 8081 埠中,
2、準備作業
(1)準備兩臺 tomcat 服務器,一臺 8080,一臺 8081
(2)在兩臺 tomcat 里面 webapps 目錄中,創建名稱是 edu 檔案夾,在 edu 檔案夾中創建頁面 a.html,用于測驗,
3、在 nginx 的組態檔中進行負載均衡的配置

4、nginx 分配服務器策略
第一種 輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器 down 掉,能自動剔除,
第二種 weight
weight 代表權重默認為 1,權重越高被分配的客戶端越多

第三種 ip_hash
每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個后端服務器

第四種 fair(第三方)
按后端服務器的回應時間來分配請求,回應時間短的優先分配,
七、Nginx 配置實體-動靜分離
1、什么是動靜分離

Nginx 動靜分離簡單來說就是把動態跟靜態請求分開,不能理解成只是單純的把動態頁面和靜態頁面物理分離,嚴格意義上說應該是動態請求跟靜態請求分開,可以理解成使用 Nginx處理靜態頁面,Tomcat 處理動態頁面,動靜分離從目前實作角度來講大致分為兩種,一種是純粹把靜態檔案獨立成單獨的域名,放在獨立的服務器上,也是目前主流推崇的方案;
另外一種方法就是動態跟靜態檔案混合在一起發布,通過 nginx 來分開,通過 location 指定不同的后綴名實作不同的請求轉發,通過 expires 引數設定,可以使瀏覽器快取過期時間,減少與服務器之前的請求和流量,具體 Expires 定義:是給一個資源設定一個過期時間,也就是說無需去服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量,此種方法非常適合不經常變動的資源,(如果經常更新的檔案,不建議使用 Expires 來快取),我這里設定 3d,表示在這 3 天之內訪問這個 URL,發送一個請求,比對服務器該檔案最后更新時間沒有變化,則不會從服務器抓取,回傳狀態碼 304,如果有修改,則直接從服務器重新下載,回傳狀態碼 200,
2、準備作業
在 liunx 系統中準備靜態資源,用于進行訪問

3、具體配置
在 nginx 組態檔中進行配置

4、最終測驗
(1)瀏覽器中輸入地址
http://192.168.17.129/image/01.jpg

因為組態檔autoindex on

重點是添加 location,最后檢查 Nginx 配置是否正確即可,然后測驗動靜分離是否成功,之需要洗掉后端 tomcat服務器上的某個靜態檔案,查看是否能訪問,如果可以訪問說明靜態資源 nginx 直接回傳了,不走后端 tomcat 服務器,
八、nginx原理
1、mater 和 worker

2、worker 如何進行作業的

第二個:nginx 有一個 master,有四個 woker,每個 woker 支持最大的連接數 1024,支持的最大并發數是多少?l 普通的靜態訪問最大并發數是: worker_connections * worker_processes /2,而如果是 HTTP 作 為反向代理來說,最大并發數量應該是 worker_connections * worker_processes/4,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/240604.html
標籤:其他
下一篇:CSDN圖片顯示問題
