Nginx學習筆記

2021-09-08 12:29:20 字數 1992 閱讀 9003

1.反向**伺服器

什麼是反向**伺服器,我在知乎上面看到乙個淺顯易懂的答案

a同學在大眾創業、萬眾創新的大時代背景下開啟他的創業之路,目前他遇到的最大的乙個問題就是啟動資金,於是他決定去找馬雲爸爸借錢,可想而知,最後碰一鼻子灰回來了,情急之下,他想到乙個辦法,找關係開後門,經過一番訊息打探,原來a同學的大學老師王老師是馬雲的同學,於是a同學找到王老師,託王老師幫忙去馬雲那借500萬過來,當然最後事成了。不過馬雲並不知道這錢是a同學借的,馬雲是借給王老師的,最後由王老師轉交給a同學。這裡的王老師在這個過程中扮演了乙個非常關鍵的角色,就是**,也可以說是正向**,王老師代替a同學辦這件事,這個過程中,真正借錢的人是誰,馬雲是不知道的,這點非常關鍵。

我們常說的**也就是只正向**,正向**的過程,它隱藏了真實的請求客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被**伺服器代替來請求,科學上網工具 shadowsocks 扮演的就是典型的正向**角色。在**用瀏覽器訪問 www.google.com 時會被無情的牆掉,要想翻閱這堵牆,你可以在國外用 shadowsocks 來搭建一台**伺服器,讓**幫我們去請求 www.google.com,**再把請求響應結果再返回給我。

反向**隱藏了真實的服務端,當我們訪問 www.baidu.com 的時候,就像撥打 10086 一樣,背後可能有成千上萬臺伺服器為我們服務,但具體是哪一台,你不知道,也不需要知道,你只需要知道反向**伺服器是誰就好了,www.baidu.com 就是我們的反向**伺服器,反向**伺服器會幫我們把請求**到提供真實計算的伺服器那裡去。nginx 就是效能非常好的反向**伺服器,它可以用來做負載均衡。

兩者的區別在於**的物件不一樣,「正向**」**的物件是客戶端,「反向**」**的物件是服務端   

反向**配置

location /
2.**快取

隨著**流量的提公升,如果只是單台機器既處理靜態檔案,又處理動態指令碼,顯然效率很難上公升,不能處理日益**的流量壓力。nginx的web快取功能的主要是由proxy_cache、fastcgi_cache指令集和相關指令集完成,proxy_cache指令負責反向**快取後端伺服器的靜態內容,fastcgi_cache主要用來處理fastcgi動態程序快取.主要的配置項有:

關於快取的失效期限上面有三個選項:x-accel-expiresinactiveproxy_cache_validexpires,它們之間是有優先順序的,按上面的順序如果在header裡設定 x-accel-expires 則它的優先順序最高,否則inactive優先順序最高。

清除快取

使用 ngx_cache_purge 模組清除快取有2種辦法(直接刪除快取目錄下的檔案也算一種辦法):

echo傳送purge指令

proxy_cache_purge purge from 127.0.0.1表示只允許在來自本地的清除指令

# echo -e 'purge / http/1.0\r\n' | nc 127.0.0.1 80
get方式請求url

即使用配置檔案中的location ~ /purge(/.*),瀏覽器訪問來清除快取,或者echo -e 'get /purge/ http/1.0\r\n' | nc ittest.example.com 80

3.負載均衡

nginx有多種負載均衡演算法

配置示例:

upstream backend 

server

4.其他功能

nginx本身不支援php等語言,但是它可以通過fastcgi來將請求扔給某些語言或框架處理()例如php、python、perl)

nginx還支援虛擬主機,可以當做多個網域名稱的伺服器,這些都只是稍微看下,待續...

參考文章:  

Nginx 學習筆記

nginx配置proxy pass 的 路徑問題 在nginx中配置proxy pass時,如果是按照 匹配路徑時,要注意proxy pass後的url最後的 當加上了 相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分 走 如果沒有 則會把匹配的路徑部分也給 走。locatio...

Nginx學習筆記

常用命令 啟動 start nginx 或者 nginx.exe 停止 nginx.exe s stop 或者 nginx.exe s quit stop是快速停止nginx,quit是完整有序的停止nginx 重啟 nginx.exe s reload 配置資訊修改使用此命令 配置 1 匹配以ro...

nginx學習筆記

mac os x 10.11.5環境 brew install nginx 即可。預設安裝目錄 usr local etc nginx。可以修改目錄下nginx.conf檔案的配置,將8080改為8081,則通過http localhost 8081訪問就可以看到nginx的歡迎介面了。主程序可以處...