利用国外服务器配置nginx代理谷歌和维基百科
2024年1月3日
材料
- 一台国外服务器
- 两个域名
nginx扩展编译
nginx因为需要安装替换字符串的扩展,所以要自己编译。
- 下载 nginx 版本包并解压。
- 下载替换字符串的扩展
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
- 下载 pcre 并解压。(这个不能直接wget)
- 查看编译参数,可以参考别的服务器内的
nginx -V
注意内部版本号 - 编译。给参数增加
--add-module=/目录/ngx_http_substitutions_filter_module --with-pcre=/目录/pcre-8.45
。 类似于./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-lUTckl/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module --add-module=/root/google/ngx_http_substitutions_filter_module --with-pcre=/root/google/pcre-8.45
make
如果最后出现报错,缺少什么工具,安装即可。 有的名字对不上,搜索一下。cd objs
可以看到编译后的nginx
。 复制到/usr/sbin
下,重启nginx即可。
nginx配置
# 加个缓存
proxy_cache_path /root/cache levels=1:2 keys_zone=my_cache:200m max_size=1g inactive=30d use_temp_path=off;
# 谷歌搜索
server {
listen 443 ssl;
server_name search.kikia.cc;
ssl_certificate /etc/nginx/conf.d/crt/search.kikia.cc.pem;
ssl_certificate_key /etc/nginx/conf.d/crt/search.kikia.cc.key;
charset 'utf-8';
access_log /var/log/nginx/search.log;
error_log /var/log/nginx/error.log;
location / {
proxy_cache my_cache;
proxy_pass https://www.google.com;
proxy_cookie_domain google.com search.kikia.cc;
proxy_set_header Host "www.google.com";
proxy_set_header Referer https://www.google.com;
sub_filter_once off;
subs_filter www.google.com.hk search.kikia.cc;
subs_filter www.google.com search.kikia.cc;
subs_filter zh.wikipedia.org wiki.kikia.cc; # 替换wiki内容
subs_filter zh.m.wikipedia.org wiki.kikia.cc; # 替换wiki内容
proxy_ssl_server_name on;
proxy_redirect off;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Accept-Encoding "";
proxy_busy_buffers_size 512k;
proxy_buffers 4 512k;
proxy_buffer_size 256k;
}
}
# wiki
server {
listen 443 ssl;
server_name wiki.kikia.cc;
ssl_certificate /etc/nginx/conf.d/crt/wiki.kikia.cc.pem;
ssl_certificate_key /etc/nginx/conf.d/crt/wiki.kikia.cc.key;
charset 'utf-8';
error_log /var/log/nginx/error.log;
location / {
proxy_cache my_cache;
proxy_pass https://zh.m.wikipedia.org; # 这个是手机版的,因为我主要手机访问。去掉m是电脑版
proxy_cookie_domain zh.m.wikipedia.org wiki.kikia.cc;
proxy_set_header Host "zh.m.wikipedia.org";
proxy_set_header Referer https://zh.m.wikipedia.org;
subs_filter zh.m.wikipedia.org wiki.kikia.cc;
subs_filter upload.wikimedia.org wiki.kikia.cc/wikipedia_upload;
proxy_ssl_server_name on;
proxy_redirect off;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Accept-Encoding "";
proxy_busy_buffers_size 512k;
proxy_buffers 4 512k;
proxy_buffer_size 256k;
}
location /wikipedia_upload {
rewrite ^/wikipedia_upload/(.*)$ /$1 break;
proxy_cache my_cache;
proxy_pass https://upload.wikimedia.org;
}
}