代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
生成nginx配置文件,反向代理google
作者:
军平
/ 发布于
2015/10/14
/
716
生成nginx配置文件,反向代理google google的ip地址经常改变,所以要用nslookup去更新ip
#!/usr/local/php/bin/php <?php define("CONF_PATH", '/usr/local/nginx/conf/hosts'); $google_ips = __DIR__ ."/google_ips.txt"; // 保存IP地址文件 $ngx_cnf = CONF_PATH ."/51open.conf"; // NGINX配置文件 exec("nslookup google.com", $out, $ret); $start = false; $ips = []; foreach($out as $line) { // answer: 之后的是服务器对应IP if (false !== strpos($line,"answer:")) { $start = true; } else if (!$start) { continue; } preg_match("/Address: ((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))))/i", $line, $matches); if (!empty($matches) && isset($matches[1])) { $ips[] = $matches[1]; } } // 保存的IP地址 if (file_exists($google_ips)) { $data = file_get_contents($google_ips); if ($data) { $arr = unserialize($data); if (isset($arr['ips']) && date('Ymd', $arr['__logtime'])==date('Ymd')) { $ips = array_merge($ips, $arr['ips']); $ips = array_unique($ips); } } } $data = ['__logtime' => time(), 'ips' => $ips]; file_put_contents($google_ips, serialize($data)); $str = ''; foreach ($ips as $ip) { $str .= sprintf("n server %s:80 max_fails=3;", $ip); } if (!$str) { exit; } $ngx_tpl = <<<EOT proxy_cache_path /data/cache/nginx/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache_key"$host$request_uri"; upstream google {%s } server { listen 80; server_name g.51open.net google.51open.net; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443; server_name g.51open.net google.51open.net; ssl on; ssl_certificate /usr/local/nginx/conf/hosts/ssl/g.51open.net.crt; ssl_certificate_key /usr/local/nginx/conf/hosts/ssl/g.51open.net.key; location / { proxy_cache one; proxy_cache_valid 200 302 1h; proxy_cache_valid 404 1m; proxy_redirect https://www.google.com/ /; proxy_cookie_domain google.com 51open.net; proxy_pass http://google; proxy_set_header Host"www.google.com"; proxy_set_header Accept-Encoding""; proxy_set_header User-Agent $http_user_agent; proxy_set_header Accept-Language"zh-CN"; proxy_set_header Cookie"PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2w1IQ-Maw"; #sub_filter www.google.com g.51open.net; #sub_filter_once off; } } EOT; $content = sprintf($ngx_tpl, $str); file_put_contents($ngx_cnf, $content);
试试其它关键字
nginx
反向代理google
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
军平
贡献的其它代码
(
28
)
.
获取视频时长
.
某日期(nowDate) 所在周的星期几(weekDay)的日期
.
token验证、防止重复提交
.
多次调用远程对象的方法
.
DataGridView中合并单元格
.
ASP.NET 做网站截图(代码示例)
.
读取http文件保存到本地
.
发光的锚链接
.
遍历控件取值,去某行的所有控件的值
.
相邻13个数字最大乘积
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3