需要進入 [nginx]的安裝目錄中的sbin目錄(也可以配置環境變量,在任何目錄都可以執行下面的命令),裡面有一個 nginx 腳本文件

默認在Linux上安裝的Nginx,配置文件在安裝的nginx目錄下的conf目錄下,名字叫做nginx.conf
nginx.conf 主要由三部分組成

就是配置文件從頭開始到 events 塊之間的內容,主要設置的是影響nginx服務器整體運行的配置指令比如 worker_process, 值越大,可以支持的並發處理量也越多,但是還是和服務器的硬件相關
2.3events 塊events 塊涉及的指令主要影響 Nginx 服務器與用戶的網絡連接,常用的設置包括是否開啟對多 work process 下的網絡連接進行序列化,是否允許同時接收多個網絡連接,選取哪種事件驅動模型來處理連接請求,每個 word process 可以同時支持的最大連接數等。
上述例子就表示每個 work process 支持的最大連接數為 1024.這部分的配置對 Nginx 的性能影響較大,在實際中應該靈活配置
2.4http 塊包括 http 全局塊,以及多個 server 塊
2.4.1http 全局塊http 全局塊配置的指令包括文件引入、 MIME-TYPE 定義、日誌自定義、連接超時時間、單鏈接請求數上限等。
2.4.2server 塊最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或 IP 配置。
#這一行表示這個server塊監聽的端口是80,只要有請求訪問了80端口,此server塊就處理請求listen80;#表示這個server塊代表的虛擬主機的名字server_namelocalhost;2.4.2.2location 塊

正向代理與反向代理的區別
最根本的區別是代理的對象不同
實現效果訪問 http://192.168.80.102:80(Nginx 首頁), 最終代理到 http://192.168.80.102:8080(Tomcat 首頁)
首先啟動一台 Tomcat 服務器 (已經安裝了 Tomcat)
進入 Tomcat 的安裝目錄下的bin目錄下,使用./startup.sh命令,啟動 Tomcat
在 Nginx 的配置文件中進行配置
1、新建一個 server 塊,在 server 全局塊中配置監聽 80 端口
2、在 location 塊中配置 / 路徑請求代理到 tomcat 的地址
下面三個配置的含義就是 ,當訪問 Linux 的 http://192.168.80.102:80 這個地址時,由於配置 Nginx 監聽的是 80 端口,所以會進入這個 server 塊進行處理,然後看你的訪問路徑,根據 location 塊配置的不同路徑進入對應的處理,由於配置了 / 請求,所以進入 / 的 location 處理,然後配置了 proxy_pass,所以進行代理到指定的路徑。
server{#監聽端口80即當訪問服務器的端口是80時,進入這個server塊處理listen80;#server_name當配置了listen時不起作用server_namelocalhost;#location後面代表訪問路徑當是/請求時代理到tomcat的地址location/{#使用proxy_pass(固定寫法)後面跟要代理服務器地址proxy_passhttp://192.168.80.102:8080;}}經過測試,當輸入http://192.168.80.102:80時,Nginx給我們代理到了Tomcat,所以顯示了Tomcat的頁面,即配置成功
3.2.2 應用二應用一訪問的是 / 路徑,給我們代理到指定的服務器
應用二實現:
啟動兩個 Tomcat 服務器
由於虛擬機的 ip 是 192.168.80.102,所以保證訪問 http://192.168.80.102:8081/edu/test.html 和 http://192.168.80.102:8082/vod/test.html 都可以成功訪問
編寫 Nginx 配置文件
server{#監聽9001端口listen9001;#進行路徑匹配,匹配到edu代理到8081location~/edu/{proxy_passhttp://192.168.80.102:8081;}#進行路徑匹配,匹配到vod代理到8082location~/vod/{proxy_passhttp://192.168.80.102:8082;}}經過測試,訪問成功!!!
3.3 server_name 作用及訪問流程客戶端通過域名訪問服務器時會將域名與被解析的 ip 一同放在請求中。當請求到了 nginx 中時。nginx會先去匹配ip,如果listen中沒有找到對應的ip,就會通過域名進行匹配,匹配成功以後,再匹配端口。當這三步完成,就會找到對應的 server 的 location 對應的資源。
4、負載均衡4.1 概述簡單來說就是使用分布式的場景,將原先的一台服務器做成一個集群,然後將請求分發到各個服務器上,但是,如何將請求每次轉發到不同的服務器呢,Nginx 就可以做到。原來我們都是直接訪問服務器,現在我們可以使用 Nginx 進行反向代理,然後我們訪問 Nginx,由Nginx將我們的請求分發到不同的服務器上,以實現負載均衡

實現:
訪問 http://192.168.80.102:80/edu/test.html,Nginx 將請求分配到 8081 和 8082 兩台 tomcat 服務器上。
1、開啟兩台tomcat
分別在 webapps 下的 edu 下編寫一個 test.html,文件內容可以不一致,為了明顯看到負載均衡的效果
2、配置文件
#在http塊中的全局塊中配置#upstream固定寫法後面的myserver可以自定義upstreammyserver{server192.168.80.102:8081;server192.168.80.102:8082;}#server配置server{#監聽80端口listen80;#location塊location/{#反向代理到上面的兩台服務器寫上自定義的名稱proxy_passhttp://myserver;}}訪問 http://192.168.80.102:80/edu/test.html 時,可以分發到 8081 和 8082 兩台服務器,測試成功
4.3 負載均衡規則4.3.1 輪詢 (默認)每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器 down 掉,能自動剔除
4.3.2weight 權重weight 代表權重默認為 1, 權重越高被分配的客戶端越多
upstreammyserver{server192.168.80.102:8081weight=1;server192.168.80.102:8082weight=2;}server{listen80;location/{proxy_passhttp://myserver;}4.3.3ip_hash每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決 session 問題
#配置負載均衡的服務器和端口upstreammyserver{server192.168.80.102:8081;server192.168.80.102:8082;ip_hash;}server{listen80;location/{proxy_passhttp://myserver;}}4.3.4fair按後端服務器的響應時間來分配請求,響應時間短的優先分配。
#配置負載均衡的服務器和端口upstreammyserver{server192.168.80.102:8081;server192.168.80.102:8082;fair;}server{listen80;location/{proxy_passhttp://myserver;}}5、動靜分離5.1 概述
準備工作:在 Linux 的根目錄下 / 的 staticResource 目錄下創建兩個文件夾,分別是 www 和 image,在 www 目錄下創建一個 okc.html, 在 image 目錄下放一張 ttt.jpg
實現效果,訪問 http://192.168.80.102:80/www/okc.html 和 http://192.168.80.102:80/image/ttt.img 時可以成功訪問資源
配置
server{listen80;#當訪問路徑帶了www時,進入這個location處理,去/staticResource目錄下對應的www目錄去找okc.html#即最終實現訪問到這個路徑#http://192.168.80.102:80/staticResource/www/okc.htmllocation/www/{root/staticResource/;indexindex.htmlindex.htm;}#跟上面一樣location/image/{root/staticResource/;}}經過測試,成功訪問
5.3root 與 alias 區別與訪問路徑示例如下:
alias
location^~/sta/{alias/usr/local/nginx/html/static/;}root
location^~/tea/{root/usr/local/nginx/html/;}【Linux常用命令速查手冊】關注【入門小站】,後台回復 「1001」 自取。
近期熱文
Git基本原理介紹
打造一款高逼格的Vim神器
乾淨又衛生漂亮的終端工具
我面試Linux必問的20個常用命令
Linux【實操篇】磁盤分區,網絡配置
Linux基礎-用戶管理與組管理
網吧學習Linux在線運行強的很哦
Shell中的if判斷怎麼用?
Windows與網絡基礎:Windows用戶管理
linux中20個高級命令
