正向代理(你自己访问不了 需要借助中间服务器来访问)
location / { proxy_pass http://$http_host$request_uri; }
差不多就这样子 我之前的一篇文章里用到了正向代理,一个取百度搜索关键词的应用,里面算是详细,代理很多请求信息什么的
反向代理:(负载均衡)(自己没资源 需要从其他服务器抓资源)
worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; upstream slave_pools{ server 192.168.11.64:80 weight=1; } server { listen 80; server_name localhost; location / { proxy_pass http://39.97.173.13; # 资源在这个服务器上用 root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
负载均衡
Nginx要实现负载均衡需要用到proxy_pass代理模块配置 Nginx负载均衡与Nginx代理不同地方在于 Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池 Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。 在nginx.conf > http 区域中 upstream django { server 10.0.0.10:8000; server 10.0.0.11:9000; } location / { root html; index index.html index.htm; proxy_pass http://django; }
upstream分配策略
weight 权重 upstream django { server 10.0.0.10:8000 weight=5; server 10.0.0.11:9000 weight=10;#这个节点访问比率是大于8000的 }