Nginx基本入門

2021-08-19 20:55:03 字數 1777 閱讀 1425

首先,nginx是乙個http伺服器,可以將伺服器上的靜態檔案(如html、)通過http協議展現給客戶端。

配置:

123456

server 

}

什麼是反向**?

客戶端本來可以直接通過http協議訪問某**應用伺服器,如果**管理員在中間加上乙個nginx,客戶端請求nginx,nginx請求應用伺服器,然後將結果返回給客戶端,此時nginx就是反向**伺服器。

反向**

配置:

123456

server 

}

既然伺服器可以直接http訪問,為什麼要在中間加上乙個反向**,不是多此一舉嗎?反向**有什麼作用?繼續往下看,下面的負載均衡、虛擬主機,都基於反向**實現,當然反向**的功能也不僅僅是這些。

當**訪問量非常大,也攤上事兒了。因為**越來越慢,一台伺服器已經不夠用了。於是將相同的應用部署在多台伺服器上,將大量使用者的請求分配給多台機器處理。同時帶來的好處是,其中一台伺服器萬一掛了,只要還有其他伺服器正常執行,就不會影響使用者使用。

nginx可以通過反向**來實現負載均衡。

負載均衡

配置:

123

4567

8910

server

192.168.0.111:8080; # 應用伺服器1

server

192.168.0.112:8080; # 應用伺服器2

}server

}的**訪問量大,需要負載均衡。然而並不是所有**都如此出色,有的**,由於訪問量太小,需要節省成本,將多個**部署在同一臺伺服器上。

例如將www.aaa.com和www.bbb.com兩個**部署在同一臺伺服器上,兩個網域名稱解析到同乙個ip位址,但是使用者通過兩個網域名稱卻可以開啟兩個完全不同的**,互相不影響,就像訪問兩個伺服器一樣,所以叫兩個虛擬主機。

配置:

123

4567

891011

1213

1415

1617

1819

server 

server

}server

}

在伺服器8080和8081分別開了乙個應用,客戶端通過不同的網域名稱訪問,根據server_name可以反向**到對應的應用伺服器。

虛擬主機的原理是通過http請求頭中的host是否匹配server_name來實現的,有興趣的同學可以研究一下http協議。

另外,server_name配置還可以過濾有人惡意將某些網域名稱指向你的主機伺服器。

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

123

4567

89

server 

}

配置中將.php結尾的請求通過fashcgi交給php-fpm處理,php-fpm是php的乙個fastcgi管理器。有關fashcgi可以查閱其他資料,本文不再介紹。

fastcgi_pass和proxy_pass有什麼區別?下面一張圖帶你看明白:

nginx 基本入門

執行可執行檔案就可以開啟 nginx,比如 c 為 nginx 的配置檔案 nginx c usr local nginx conf nginx.conf如果,nginx 已經開啟,那麼它就可以通過使用 s引數的可執行命令控制。使用下列格式 nginx s signalsignal 可以為下列命令之...

Nginx 基本入門

首先,nginx 是乙個 http 伺服器,可以將伺服器上的靜態檔案 如html 通過 http 協議展現給客戶端 配置 server 什麼是反向 客戶端本來可以直接通過 http 協議訪問某 應用伺服器,如果 管理員在中間加上乙個 nginx,客戶端請求 nginx,nginx 請求應用伺服器,然...

Nginx基本入門

首先,nginx是乙個http伺服器,可以將伺服器上的靜態檔案 如html 通過http協議展現給客戶端。配置 server 什麼是反向 客戶端本來可以直接通過http協議訪問某 應用伺服器,如果 管理員在中間加上乙個nginx,客戶端請求nginx,nginx 請求應用伺服器,然後將結果返回給客戶...