文章目錄
- Nginx
- 反向代理
- 反向代理系統調優
- Proxy Buffer相關指令
Nginx
具有高性能的http和反向代理的web服務器,同時也是一個pop3/smtp/imap代理服務器,使用c語言編寫
**Web服務器:**也叫網頁服務器,web server,主要功能是為用戶提供網上信息瀏覽服務
pop/smtp/imap:都是郵件相關協議,所以Nginx也可以作為電子郵件代理服務器
反向代理:
客戶端將請求發送給代理,代理將請求發送給不同的服務端,把服務端隱藏起來,降低服務端壓力
正向代理:
客戶端將請求發送給代理,代理再向服務端請求,并接受服務端響應,將響應返回給客戶端,比如翻墻
cgi:通用網關(接口),主要解決的問題是從客戶端發送請求和數據,服務端獲取到請求和數據后可以調用cgi程序處理及相應結果給客戶端的一種標準規范
反向代理
正向代理代理的是客戶端(如翻墻),反向代理代理的是服務端,用戶請求代理服務器,代理服務器再將請求分發到服務端
ngx_http_proxy_module
proxy_pass
設置被代理服務器地址,可以是主機名稱,ip地址+端口形式
Syntax: proxy_pass URL;
Default: —
Context: location, if in location, limit_except
如果url后面不帶/
,最終被代理服務器的地址會是原來的url拼接上location后面的url
proxy_set_header
用來給客戶端請求添加頭信息
Syntax: | proxy_set_header field value; |
---|---|
Default: | proxy_set_header Host $proxy_host;``proxy_set_header Connection close; |
Context: | http , server , location |
$http_請求頭名稱:可以獲取對應請求頭內容
proxy_redirect
重置頭信息中的Location和Refresh的值
Syntax: | proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement; |
---|---|
Default: | proxy_redirect default; 將location塊的uri變量作為replacement,將proxy_pass變量作為redirect進行替換 |
Context: | http , server , location |
主要用來解決服務端ip可能暴露問題,可以在代理服務器端添加
proxy_redirect 服務端ip 代理服務器地址 來實現Location的
反向代理系統調優
Buffer和Cache
- 相同點:都是用來提高IO吞吐效率,提升nginx代理性能
- 不同點:緩沖主要用來解決不同設備之間數據傳遞速度不一致導致的性能低問題,緩沖中的數據一旦此次操作完成就可以刪除
- 緩存主要是備份,將被代理服務器的數據緩存一份到代理服務器,客戶再次獲取相同數據時,只需從代理服務器上獲取,效率高
Proxy Buffer相關指令
proxy_buffering
用來開啟或關閉代理服務器緩沖區
proxy_buffers
用來指定單個連接從代理服務器讀取響應的緩存區的個數和大小
proxy_buffers 個數 大小
proxy_buffer_size
用來設置從被代理服務器獲取的第一部分響應數據的大小,保持與proxy_buffers中的size一致即可,也可以更小
proxy_busy_buffers_size
限制同時處于busy狀態的緩沖總大小
proxy_temp_file_write_size
設置磁盤上緩沖文件大小
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;