Nginx 代理配置

1.常见代理模式

正向代理

反向代理

透明代理

2.正向代理使用场景

从上图看,所谓的正向代理就是代理服务器【Z】替代访问方【用户A】去访问目标服务器【服务器B】

2.1 用户访问本来无法访问的服务器B的资源

2.2 cache 作用

2.3 客户端访问授权

server{
        resolver 8.8.8.8;
        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是刚刚设置的端口号)即可使用了。

3.反向代理使用场景

3.1 负载均衡

当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。
当然反向代理服务器像正向代理服务器一样拥有Cache的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器组请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图所示:

http {
#    省略了前面一般的配置,直接从负载均衡这里开始
#    设置地址池,后端3台服务器
    upstream http_server_pool {
        server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;
        server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;
        server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;
    }
#    一个虚拟主机,用来反向代理http_server_pool这组服务器
    server {
        listen       80;
#        外网访问的域名        
        server_name  www.test.com; 
        location / {
#           后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器
            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
            proxy_pass http://http_server_pool;
            proxy_set_header Host www.test.com;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        access_log  logs/www.test.com.access.log  combined;
    }
}
最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf
server {
    listen    80;
    server_name test.zhoumengkang.com;
    location / {
        proxy_pass http://121.199.**.*:80;
    }
}
参考:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html

4.透明代理

客户端不需要知道代理服务器存在

转载自:https://www.cnblogs.com/gbq-dog/p/10653054.html

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: nginx代理配置文件可以包含一个或多个 `server` 块,每个 `server` 块用于配置一个虚拟主机。 在 `server` 块中,可以使用 `location` 指令来配置代理。例如,如果你想将所有请求代理到另一个服务器上,可以使用以下配置: ``` server { listen 80; location / { proxy_pass http://other_server; } } ``` 这样,所有请求都会被代理到 http://other_server。 你还可以通过使用正则表达式来限制代理的路径,或者通过使用 `proxy_redirect` 指令来修改响应头中的 `Location` 字段。 ### 回答2: Nginx是一个高性能的HTTP和反向代理服务器,可以通过代理配置文件来进行配置代理配置文件通常是指Nginx的主配置文件nginx.conf中的部分或全部内容,用于定义Nginx代理行为。 在代理配置文件中,可以通过以下几个关键字来配置Nginx代理功能: 1. server:用于定义一个虚拟服务器,可以配置该服务器的监听地址和端口号。一个Nginx可以定义多个虚拟服务器来监听不同的地址和端口。 2. location:用于定义请求的匹配规则和代理行为。可以指定要代理的目标地址、代理方式(例如反向代理正向代理)、代理请求头等。 3. proxy_pass:用于指定要代理的目标地址,可以是一个具体的URL或者一个包含变量的表达式。 4. proxy_set_header:用于设置代理请求头的值,可以设置HTTP头字段、代理连接方式等。 5. proxy_buffering:用于设置是否开启代理缓存,可以提高反向代理的性能。 除了上述关键字,代理配置文件还可以使用一些Nginx提供的变量来进行配置,例如$remote_addr表示客户端的IP地址,$uri表示请求的路径等。 通过配置代理配置文件,可以实现Nginx代理功能,将客户端的请求转发到其他服务器上进行处理。代理配置文件的灵活性和强大功能使得Nginx在实际应用中被广泛使用,可以通过配置文件来满足各种不同的代理需求。 ### 回答3: nginx代理配置文件是指用于配置nginx反向代理服务器的文件。通过这个配置文件,可以指定nginx代理服务器接收的请求,并将其转发到后端服务器上。 在nginx配置文件中,每个代理服务器配置由一个或多个location块组成。每个location块指定了一个URL路径和相应的配置。 在每个location块中,可以通过proxy_pass指令指定要转发到的后端服务器的地址。例如,proxy_pass http://backend_server; 将请求转发到名为backend_server的后端服务器。 除了proxy_pass,还可以配置其他代理相关的指令,如proxy_set_header设置要传递到后端服务器的头部信息,proxy_redirect用于重定向响应等。 在配置文件中,可以设置多个代理服务器,每个代理服务器对应一个或多个location块。这样可以根据需要进行灵活的转发配置。 此外,还可以在配置文件中设置ssl相关的指令,用于配置 HTTPS 的代理配置ssl证书和私钥的路径,以及其他与HTTPS相关的参数。 完成配置文件后,需要重新加载nginx配置,并启动nginx服务器。 可以使用nginx -t命令验证配置文件语法是否正确,然后使用nginx -s reload命令重新加载配置文件。 通过以上的配置nginx代理服务器可以根据配置文件中的规则,将接收到的请求转发到指定的后端服务器上,实现了代理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值