博客 / 詳情

返回

9. Nginx代理

正向代理

正向代理:代理的是瀏覽器,例如翻牆服務等

#curl http://www.baidu.com/ -x http://www.siguoya.name:3333/
server {
  listen 3333;
  server_name www.siguoya.name;
  location / {
    proxy_pass http://$http_host$request_uri;
    #如果在代理配置中,我們使用域名而不是IP來表示真實的服務器,則一定要通過resolver指令指定一個dns服務器才行
    resolver 114.114.114.114;
  }
}

反向代理

反向代理:代理的是服務器,例如隱藏服務器的真實地址,通過80端口訪問非公開的端口等

location /some/path/ {
    proxy_pass http://www.example.com/link/;
}

參考文檔:

  • https://moe.best/technology/p...
  • http://www.ttlsa.com/nginx/ng...

相關指令

指令 説明
proxy_buffering 類似於tcp_nopush,可以提高網絡傳輸的效率
proxy_redirect 設置代理重定向
proxy_set_header 設置代理頭信息
proxy_hide_header 隱藏代理頭信息
proxy_set_body 設置代理請求的數據
proxy_connect_timeout 設置代理連接超時
proxy_read_timeout 設置代理獲取響應的超時
proxy_send_timeout 設置代理髮出請求的超時
proxy_cookie_domain 設置cookie的域名範圍

常用配置示例

location / {
  proxy_pass http://www.baidu.com/;
  proxy_redirect default;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_connect_timeout 30;
  proxy_read_timeout 60;
  proxy_send_timeout 60;
  proxy_buffer_size 32k;
  proxy_buffering on;
  proxy_buffers 4 128k;
  proxy_busy_buffers_size 256k;
  proxy_max_temp_file_size 256k;
}

對於通用的配置塊,例如http與https的相同區塊,我們可以分離到一個單獨的文件,然後通過incude來進行載入

正向代理與反向代理的區別就在於代理的對象是不一樣的。

專題閲讀

  • 1. Nginx的優點
  • 2. Nginx的安裝與開機自啓
  • 3. Nginx目錄和配置語法
  • 4. Nginx模塊
  • 5. Nginx靜態資源處理
  • 6. Nginx瀏覽器緩存原理
  • 7. Nginx資源的跨域訪問
  • 8. Nginx資源的防盜鏈
  • 9. Nginx代理
  • 10. Nginx負載均衡
  • 11. Nginx緩存
  • 12. Nginx動靜分離
  • 13. Nginx Rewrite
  • 14. Nginx Secure Link
  • 15. Nginx Geo
  • 16. Nginx HTTPS服務
  • 17. Nginx與Lua開發
  • 18. Nginx與Lua灰度發佈
  • 19. Nginx常見錯誤
  • 20. Nginx性能優化
  • 21. Nginx安全管理
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.