开源实例之解决域名被墙
前言
本篇介绍开源实例系列域名被墙的解决方案。
问题描述
移动网络屏蔽了 eu.org 域名。表现为使用电信网络的电脑端访问开源实例正常,而使用移动网络的手机端无法访问。
解决方案
启用 dujun.tk 域名替换 dujun.eu.org 域名。tk 域名不稳定,在字面上仍用 eu.org 作为入口跳转。
具体部署
申请 dujun.tk 域名
tk 域名可在https://www.freenom.com申请,为期一年,到期可续。
注意:tk 域名没有所有权,随时可能被收回,不建议在正式业务中使用。
生成通配符 SSL 证书
域名解析在 DNSPod,使用 acme.sh 生成通配符 SSL 证书:
acme.sh --issue --dns dns_dp -d dujun.tk -d *.dujun.tk
详见《开源实例之免费通配符SSL证书》。
解析 dujun.tk 子域名
server {
listen 80;
server_name *.dujun.tk dujun.tk;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl http2;
server_name *.dujun.tk dujun.tk;
add_header "Access-Control-Allow-Origin" "*" always;
add_header "Access-Control-Allow-Credentials" "true" always;
add_header "Access-Control-Allow-Methods" "GET,HEAD,POST" always;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Origin http://$host;
proxy_redirect default;
}
ssl_certificate /root/.acme.sh/dujun.tk_ecc/dujun.tk.cer;
ssl_certificate_key /root/.acme.sh/dujun.tk_ecc/dujun.tk.key;
ssl_trusted_certificate /root/.acme.sh/dujun.tk_ecc/ca.cer;
}
解析 dujun.eu.org 子域名(跳转)
server {
listen 80;
listen 443 ssl http2;
server_name dujun.eu.org;
rewrite ^(.*) https://dujun.tk$1 permanent;
ssl_certificate /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.cer;
ssl_certificate_key /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.key;
ssl_trusted_certificate /root/.acme.sh/dujun.eu.org_ecc/ca.cer;
}
server {
listen 80;
listen 443 ssl http2;
server_name *.dujun.eu.org;
if ( $http_host ~* "^(.*?)\.dujun\.eu\.org$") {
set $domain $1;
}
rewrite ^/(.*) http://$domain.dujun.tk/$1 permanent;
ssl_certificate /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.cer;
ssl_certificate_key /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.key;
ssl_trusted_certificate /root/.acme.sh/dujun.eu.org_ecc/ca.cer;
}
dujun.eu.org 子域名转发至 dujun.tk 相同子域名。例如 wordpress.dujun.eu.org 将跳转至 wordpress.dujun.tk。
手机端域名替换
js 渲染页面时,将要打开的站外链接地址中 dujun.eu.org 替换为 dujun.tk。
后记
标签: 开源实例