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/;
}

相关指令

指令 说明
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安全管理

你可能感兴趣的:(9. Nginx代理)