利用Nginx架设Http代理服务器

转自:http://blog.youkuaiyun.com/longmarch12/article/details/6563820
nginx是一款强大的反向代理服务器软件,除了作为http服务器和反向代理之外,还可以架设http代理服务器。

配置很简单:

[cpp]  view plain copy
  1. resolver YOUR_RESOLV_IP;  
  2. server {   
  3. listen proxy_ip:proxy_port;   
  4.   
  5. location / {  
  6. proxy_pass http://$http_host$request_uri;  
  7. access_log logs/http_proxy.access.log;  
  8. error_log logs/http_proxy.error.log;  
  9. }  
  10.   
  11. }  



=========================================================

wget通过http代理访问:
 
在服务器上wget之前,设置一下环境变量:

export http_proxy=proxy_ip:proxy_port 


wget http://www.qq.com

--16:25:38-- http://www.qq.com/
=> `index.html'
Connecting to proxy_ip:proxy_port... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]

[ <=> ] 55,822 121.90K/s 

16:25:42 (121.74 KB/s) - `index.html' saved [55822]

大功告成。

===============================================
 
PHP中如何使用代理发送http请求呢?

一、 使用CURL扩展
 
[php]  view plain copy
  1. $curl = curl_init($url); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);curl_setopt($ch, CURLOPT_PROXY, 'proxy_ip:proxy_port');$res = curl_exec($curl);  
 
二、 使用pecl的http扩展 

官网地址:http://pecl.php.net/package/pecl_http
使用方式:
 
[php]  view plain copy
  1. $http_obj = new HttpRequest($url, HttpRequest::METH_GET);  $options = array(   'useragent' => 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',   'connecttimeout' => 1,    'timeout' => 3,   'proxyhost' => 'proxy_ip:proxy_port ',); $http_obj->setOptions($options); $message_obj = $this->mHTTP->send();$res =   $message_obj->getBody();     
 
### 动态域名代理服务器的设置与配置 #### Nginx作为反向代理的基础配置 对于希望实现动态域名解析并架设反向代理服务的情况,可以利用Nginx来完成这一目标。一个基础的反向代理配置可以通过定义`server`块中的`location`指令指向目标站点地址达成目的[^1]。 ```nginx server { listen 80; server_name yourdomain.com; location / { proxy_pass https://targetsite.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 上述代码展示了如何创建一个基本的HTTP监听端口80的服务实例,并将其所有的请求转发给指定的目标网站。这里还设置了几个重要的头部信息传递选项以便让被代理的应用能够获取到原始客户端的信息。 #### 配置文件位置及加载方式 当采用YUM包管理器安装Nginx时,默认情况下其主要配置文件位于`/etc/nginx/nginx.conf`路径下。为了便于管理和扩展,在实际部署过程中通常会将不同的虚拟主机或应用的具体配置分离出来单独保存在一个目录里(比如`vhost`),并通过在主配置文件中加入`include vhost/*.conf;`语句使得这些额外的配置也能得到执行[^3][^4]。 #### 实现基于DNS查询的结果自动调整访问策略 除了静态设定外,还可以编写PAC(Proxy Auto-Configuration)脚本来根据特定条件决定是否使用代理以及具体使用的哪个代理服务器。下面是一个简单的例子,它可以根据源IP地址所属网络范围的不同选择直连还是走代理: ```javascript function FindProxyForURL(url, host) { if (dnsDomainIs(host, ".local") || isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) { return "DIRECT"; } else { return "PROXY web-proxy.example.org:8080"; } } ``` 这段JavaScript风格的小程序允许浏览器或其他支持PAC协议的软件依据预设逻辑自行选取最佳路由途径,从而提高了灵活性和适应能力[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值