生成nginx配置文件,反向代理google
生成nginx配置文件,反向代理google
google的ip地址经常改变,所以要用nslookup去更新ip
#!/bin/env 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|((1\d{2})|([1-9]?\d)))\.) {3}(?:25[0-5]|2[0-4]\d|((1\d{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 client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; #levels设置目录层次 #keys_zone设置缓存名字和共享内存大小 #inactive在指定时间内没人访问则被删除在这里是1天 #max_size最大缓存空间 proxy_cache_path /data/cache/nginx/51open levels=1:2 keys_zone=51open:20m inactive=1d max_size=2g; 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 51open; proxy_cache_key \$host\$uri\$is_args\$args; proxy_cache_valid 200 304 301 302 3d; #哪些状态缓存多长时间 proxy_cache_valid any 1d; #其他的缓存多长时间 proxy_redirect https://www.google.com/ /; proxy_cookie_domain google.com g.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"; # --- 关键字替换 start --- # sub_filter_types text/css text/xml text/javascript; # 过滤类型 sub_filter ssl.gstatic.com g.51open.net; # google会加载ssl.gstatic.com的几个资源和文件 sub_filter www.google.com g.51open.net; sub_filter_once off; # --- 关键字替换 end --- # } ## 反向代理ssl.gstatic.com ## location /gb { proxy_cache 51open; proxy_cache_key \$host\$uri\$is_args\$args; proxy_cache_valid 200 304 301 302 3d; #哪些状态缓存多长时间 proxy_cache_valid any 1d; #其他的缓存多长时间 proxy_pass http://ssl.gstatic.com/gb/; proxy_cookie_domain ssl.gstatic.com g.51open.net; proxy_set_header Accept-Encoding ""; proxy_set_header User-Agent \$http_user_agent; proxy_set_header Accept-Language "zh-CN"; } } EOT; $content = sprintf($ngx_tpl, $str); file_put_contents($ngx_cnf, $content);
以上就是生成nginx配置文件,反向代理google的内容,更多相关内容请关注PHP中文网(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

當 Nginx 服務器宕機時,可執行以下故障排除步驟:檢查 nginx 進程是否正在運行。查看錯誤日誌以獲取錯誤消息。檢查 nginx 配置語法正確性。確保 nginx 具有訪問文件所需的權限。檢查文件描述符打開限制。確認 nginx 正在偵聽正確的端口。添加防火牆規則以允許nginx流量。檢查反向代理設置,包括後端服務器可用性。如需進一步幫助,請聯繫技術支持。
