nginx代理配置笔记


server{
        resolver 223.5.5.5;
        resolver_timeout 30s; 
        listen 82;
        location / {
                proxy_pass http://$http_host$request_uri;
                proxy_set_header Host $http_host;
                proxy_buffers 256 4k;
                proxy_max_temp_file_size 0;
                proxy_connect_timeout 30;
                #proxy_cache_valid 200 302 10m;
                #proxy_cache_valid 301 1h;
                #proxy_cache_valid any 1m;
        }
}

1、不能有hostname。

2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。

3、配置正向代理参数,均是由 Nginx 变量组成。

proxy_pass $scheme://$host$request_uri;  
proxy_set_header Host $http_host;  

4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。

proxy_buffers 256 4k;  
proxy_max_temp_file_size 0;  
proxy_connect_timeout 30;  

5、配置代理服务器 Http 状态缓存时间。

proxy_cache_valid 200 302 10m;  
proxy_cache_valid 301 1h;  
proxy_cache_valid any 1m; 

配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http:// +服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。

本机正向代理

这里通俗易懂多嘴说一下:什么是代理?什么是正向代理?什么是反向代理?
代理:我们想干一件事情,但是不想自己干,找中间商。
正向代理:代理的是客户端,代理人是中介传话筒,你直接与目标结算,如买房子和VPN,
反向代理:代理的是服务器,代理人涂掉房东信息,不让你知道你跟谁买房,反正房子过到你名下即可,如负载均衡隐藏真实服务器

负载均衡示例:

upstream com_yongit_blog{
    sticky name=blog expires=1h domain=yongit.com path=/ hash=md5;
    server 192.168.0.8:8090;
    #server localhost:80;
}
server{
    listen 80;
    server_name blog.yongit.com;
    location / {
        proxy_pass http://com_yongit_blog;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $Host;
        proxy_redirect off;
    }
    error_page 500 502 503 504 /50x.html;
    location = 50x.html{
        root html;
    }
}

反向代理示例:

server {
    listen       80;
    server_name  blog.yongit.com;
    set $package 'com.yongit.blog';

    index index.html index.htm index.php;
    root  /datas/website/$package/public;

    location /index/{
         proxy_pass  http://blog.yongit.com/index/;
    }
    location /mobile/{
         proxy_pass  http://blog.yongit.com/mobile/;
    }
    location /admin/{
          proxy_pass  http://blog.yongit.com/admin/;
    }

    location /api/{
          proxy_pass  http://blog.yongit.com/admin/;
    }

    location ~ .*.(svn|git|cvs){deny all;}
    access_log  /datas/logs/nginx/$package.log;
}

其他

通过cloudflare的代理可用:

server {
    listen       80;
    server_name  work.yongit.com;

    index index.html index.htm index.php;
    location / {
        if ($request_method = 'OPTIONS') {
              return 204;
        }
        proxy_pass  http://work2.yongit.com/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;

        # this 5 line usefull
        #proxy_set_header        X-refer-Id 1094;
        #proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header        Host $host;
        #proxy_set_header        X-Real-IP $remote_addr;
        #proxy_set_header        REMOTE-HOST $remote_addr;
    }
    location ~ .*.(svn|git|cvs){deny all;}
}

版权声明,转载请附上原文链接及本声明: https://blog.yongit.com/note/131868.html