Nginx簡單實(shí)用
相關(guān)代理詳解
- 正向代理
- 介紹
- 用戶A(想訪問ServerB,但是不能直接訪問,ServerA可以訪問ServerB) --> ServerA --> ServerB ,對(duì)于這個(gè)訪問鏈路來說,ServerA就是一個(gè)正向代理。
- 優(yōu)缺點(diǎn):
- 屏蔽或者隱藏了真實(shí)的客戶端信息(ServerB只知道ServerA訪問,并不知道用戶A的相關(guān)信息);
- 應(yīng)用
- cache作用;
- 客戶端訪問授權(quán);
- 介紹
- 反向代理
- 介紹
- 用戶A(獲取ServerB的服務(wù),但是對(duì)于用戶A來說,訪問ServerA就能獲得ServerB的服務(wù),但是ServerA是一個(gè)代理服務(wù)器。) --> ServerA --> ServerB
- 優(yōu)缺點(diǎn)
- 隱藏了對(duì)外部的實(shí)際服務(wù)器的地址(比如實(shí)際提供服務(wù)的是ServerB,但是外部只知道ServerA,并不知道ServerB的存在);
- 應(yīng)用
- 負(fù)載均衡;
- 介紹
- 透明代理
- 客戶端不知道代理服務(wù)器的存在,它會(huì)修改請(qǐng)求的報(bào)文,并傳送真實(shí)的ip,多用于路由器的NAT轉(zhuǎn)發(fā)中。
Windows下的nginx配置
- 安裝
- 下載windows安裝包: http://nginx.org/en/download.html,nginx/windos-version;
- 雙擊安裝即可;
- 配置
- 常用命令(在nginx安裝目錄下,cmd進(jìn)入windows命令行)
- nginx -s stop (強(qiáng)制停止nginx,如果存在未處理的數(shù)據(jù),丟棄)
- nginx -s quit (如果存在未處理數(shù)據(jù),等待數(shù)據(jù)處理完成后,停止)
- nginx -s reload (配置文件修改后,重新啟動(dòng)nginx)
- nginx -s reopen (打開一個(gè)新的日志文件,防止原日志文件過大。)
Linux下的nginx配置
- 安裝
Linux的安裝與windows有一些區(qū)別,需要經(jīng)歷./configure(鏈接)、make(編譯)、make install(安裝) 等步驟,并且特別注意一下其中的參數(shù),會(huì)影響到最后安裝的結(jié)果。- 下載tar包: http://nginx.org/en/download.html,nginx-version.tar.gz;
- ./configure 命令,部分參數(shù)說明:
- -prefix=path 指定安裝路徑,不指定的話默認(rèn)/usr/local/nginx;
- -sbin-path=path nginx可執(zhí)行文件安裝路徑,只能安裝時(shí)指定,如不指定,默認(rèn)<prefix>/sbin/nginx
- -conf-path=path 在不指定-c參數(shù)時(shí)的配置文件路徑,如不指定,默認(rèn)為<prefix>/conf/nginx.conf
- 常用命令
- nginx -c /path/to/nginx.conf 指定nginx啟動(dòng)時(shí)的配置文件;
- nginx -s reload 修改配置后,重新加載配置文件;
- nginx -s stop 強(qiáng)制關(guān)閉nginx;
- nginx -s quit 關(guān)閉nginx,如有使用,使用完畢后關(guān)閉;
- nginx -t 測試配置文件是否有效(修改配置文件后,可以測試修改后的配置文件是否可行);
Nginx配置文件簡單使用說明
nginx在項(xiàng)目使用中,核心的幾個(gè)功能分別是反向代理、負(fù)載均衡和靜態(tài)服務(wù)器;
nginx的配置文件,主要分為以下幾個(gè)模塊:
-
全局配置;全局配置.png
- user 指定nginx-worker 進(jìn)程運(yùn)行用戶及用戶組(主要在linux服務(wù)器上使用,指定運(yùn)行nginx的linux用戶即可,如果是靜態(tài)資源,注意一下訪問的靜態(tài)資源權(quán)限問題);
- worker_processes 指定nginx開啟的子進(jìn)程數(shù)量,一般是cpu內(nèi)核數(shù)量的整數(shù)倍;
- worker_rlimit_nofile 指定一個(gè)進(jìn)程可以打開最多文件數(shù)量的描述;
-
event 模塊配置;event模塊.png
- worker_connections 指每個(gè)worker_processes最大可以同時(shí)接收的連接數(shù)量;
- use epoll 選擇事件驅(qū)動(dòng)模塊。調(diào)優(yōu)使用。支持類型有select、poll、kqueue、epoll、rtsing等;
-
http 模塊配置;
-
server 模塊;http-server.png
- server模塊,一個(gè)http模塊可以有多個(gè)server;
- server_name,指定ip地址或者域名,多個(gè)配置之間使用空格;
- listen,監(jiān)聽的端口地址;
-
location 模塊;location模塊.png
- proxy_pass 指定代理的地址信息;
- alias 指定的目錄是準(zhǔn)確的,即訪問的location是直接在alias指定的目錄下尋找的;
- root 指定的目錄是,訪問location頁面的上一級(jí)目錄。需要保證path目錄一定要在root目錄下,具體可參考(https://www.cnblogs.com/moon3/p/11095645.html);
-
server 模塊;
-
upstream (負(fù)載均衡)模塊;負(fù)載均衡.png
- server 即為輪詢的服務(wù)列表,訪問的時(shí)候,可以在location模塊中使用upstream模塊指定的name;
- ip_hash不指定時(shí),默認(rèn)使用的是輪詢,比較適合靜態(tài)頁面和圖片服務(wù)集群;
- ip_hash指定時(shí),按訪問的ip的hash分配,可以解決session問題;
- max_fail 最大失敗次數(shù),超過失敗次數(shù)暫停服務(wù);
- fail_timeout 如果請(qǐng)求受理失敗,暫停指定的時(shí)間之后重新發(fā)起請(qǐng)求;
- server ip:port weight=5 也可以使用權(quán)重設(shè)置,用于后端服務(wù)器性能不均衡的情況;




