CentOS8 下Nginx使用教程


1、nginx安裝

dnf install nginx -y

 

 

2、nginx常用目錄

nginx.conf目錄:/etc/nginx.nginx.conf

nginx啟動目錄:/usr/sbin/nginx

 

3、nginx熱部署

所謂熱部署,就是配置文件nginx.conf修改后,不需要stop Nginx,不需要中斷請求,就能讓配置文件生效!

/usr/sbin/nginx -s reload

 

4、配置nginx 訪問資源目錄

修改 nginx.conf 配置文件,在service標簽內部加入下面的location,通過訪問 ip地址:端口/source 就能訪問  /home/source  目錄了。

location /source {
  root /home;
  autoindex:on;
}

還可以有如下寫法:

location /source {
  alias /home/source;
  autoindex:on;
}

 

5、反向代理

聽着反向代理是不是很牛逼的事,實際上很容易理解:

正向代理:A要訪問C的地址,但是由於網絡或是牆的問題,A不能直接訪問到C,但是呢有個B可以訪問C,A也可以訪問B,那么A在訪問C的時候通過B代理,這就是正向代理。
A ---/---> C ;  A ------> B ; B ------> C ;那么 A ------> B ------> C

反向代理:A要訪問C的地址,但是由於網絡或安全的問題,A不能直接訪問到C,但是呢有個B可以訪問C,A也可以訪問B,那么A在訪問C的時候通過B代理,這就是正向代理。
A ---/---> C ;  A ------> B ; B ------> C ;那么 A ------> B ------> C

通過上面的示例是不是覺得 正向代理和反向代理一樣?

對,確實原理一樣,但是有有個明顯的差別就是:

在正向代理中 A訪問C,A是明確知道C的地址(要想訪問www.google.com)。B相當於是訪問的介質。

在反向代理中A訪問C,A只知道B的地址不知道C的地址,當A訪問B的時候由B請求C之后把請求結果返回給A。

配置方法很簡單:把root換成proxy_pass , 路徑換成網絡地址。

location /WeChatApp {
  proxy_pass http://localhost:8878/;
}

 

6、負載均衡

復制均衡聽着是不是也很NB,其實原理也非常簡單,因為由反向代理,A只用訪問B就行了,那么至於B要訪問多少個C那是可以配置的:

比如說 由於用戶量激增,需要新增服務器來部署應用應對並發訪問,這時用戶訪問的還是B地址,只有配置B把請求分發給對台服務器應用,就能應對並發操作,這就是負載均衡。

在server標簽外面添加:

upstream myserver{
    server http://192.168.1.40:8080; 
     server http://192.168.1.45:8480; 
}

在server標簽內添加:

location /WeChatApp {
  proxy_pass http://myserver;
}

這樣就把請求分發到不同的應用去處理了。

 

7、動靜分離

牛逼的名稱又來了,動靜分離就是把通過反向代理,針對不同的資源配置不同的訪問方式。

比如說查詢用戶列表需要查詢數據庫,需要組織返回的數據結構,這就是一個動態請求。
比如要訪問圖片、pdf文件...這些靜態資源這一個靜態請求。

那么針對不同的接口做不同的配置就實現了動靜分離:

# 訪問  動態資源
location /WeChatApp {
  proxy_pass http://localhost:8878/;
}

#訪問 /home/image 靜態資源目錄
location /image {
  root /home;
  autoindex:on;
}

 

8、高可用的集群

通過nginx做代理 進行負載均衡就會出現一個問題,就是nginx服務器掛掉之后,它代理的接口地址都不能訪問了。

為了解決這個問題就需要配置一個高可以的集群,原理很簡單,就是在另一台服務器其上部署一個相同配置的nginx服務器,這樣主nginx服務器掛掉之后,副的nginx服務器補上。

 

主流方案是Keepalived+Nginx實現雙機熱備。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM