nginx 代理

来源:互联网 发布:linux下安装mysql 编辑:程序博客网 时间:2024/05/17 07:41
一、代理服务
如果把局域网外的internet想象成一个巨大的资源库,那么资源就分布在Internet各个站点上,局域网内的客户端要访问这个库里的资源必须统一通过代理服务器才能对各个站点进行访问
代理服务器起到一部分防火墙的功能,同时利用代理服务器可以对局域对外网进行必要的监控和管理

正向代理不支持外部对内部网络的访问

二、如果局域网向internat提供资源,让internet上的其他用户可以访问局域网内的资源,也可以设置一个代理服务器,它提供的服务就叫反向代理(Revers Proxy)服务

三、正向代理服务的配制的3个指令
1.resolver指令
resolver address ...[valid=time]
address,DNS服务器的IP地址,如果不指定端口号,默认使用53端口
time,设置数据包在网络中的有效时间,出现该指令的主要原因,在访问站点时,有很多情况使得数据包在一定时间内不能被传递到目的地,但是以不能让该数据包无限地存在,于是就设定一段时间,不数据包在这段时间内没有到达目的地,就会被丢弃,然后发送者会接收到一个消息,并决定是否重发该数据包
server {  
    resolver 192.168.1.1; #指定DNS服务器IP地址  
    listen 8080;  
    location / {  
        proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址  
    }  
}  
设置nginx代理服务,一般是配置到一个server块中。注意,在该server块中,不要出现 server_name指令,即不要设置虚拟主机的名称和IP。而resolver是必需的,如果没有该指令,nginx无法处理接收到的域名。其次,nginx代理服务不支持正向代理HTTPS站点。

配置完成后,重启nginx就可以生效,此时我们在浏览器设置代理服务
配置完成后,重启nginx就可以生效了。此时我们在浏览器中设置代理服务:“Internet选项” -> “连接” -> “局域网设置” -> “代理服务器”,然后设置如下:

        这里IP地址为运行nginx主机的IP地址,端口为我们配置文件中设置的listen端口号。这样我们就可以通过nginx的正向代理来访问Internet资源了
2.resolver_tmeout
该指令用于设置DNS服务器域名解析超时时间
resolver_time time

3.proxy_pass 指令
用于设置代理服务器的协议和地址
格式:proxy_pass http://$http_host$request_uri
在centos nginx.conf 中配置
location ~* \.php${
proxy_pass http://192.168.0.143;#这是我window的apache主机
}
然后访问nginx服务器的地址 nginx.com/a.php
会转到apache中的a.php