备案域名失效 临时使用境外服务器重定向方案

备案域名失效 临时使用境外服务器重定向方案

首先把需要访问的项目nginx主机文件设置成默认hosts

server {
    listen       80 default_server;//在监听端口后面添加default_server,设置为默认项目
    server_name  api.xxxxxxxx.com;
    root /home/www/xxxxxxxx/public;
    index index.html index.htm index.php;
        access_log /data/logs/nginx/xxxxxxxx_access.log main;
        error_log /data/logs/nginx/xxxxxxxx.com_error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }

}


$ nginx -t
>>
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$ nginx -s reload

改完 nginx -t 测试配置文件是否ok,注:一台服务器只允许有一个主机文件是默认的,如果其他文件也存在就会测试失败

没有问题就直接 nginx -s reload 重启nginx

境外服务器重定向配置

server
{
    listen 80;
    server_name  api.xxxxxxxx.cc api.xxxxxxxx.com;
    location / {
        if ($request_method ~ ^(POST)$) {
             proxy_pass http://000.000.000.000;
            break;
        }
        rewrite ^(.*) http://000.000.000.000$1 permanent;
    }
}

## rewrite ^(.*) http://000.000.000.000$1 permanent;
## ^ 这行代码表示重定向到这个地址
## $1 permanent  < 这两个代表Get请求时的参数

## 但是post请求时这个方法就无效了,因为post请求数据在请求体内,参数不可见,重定向会失去参数
## 所以使用的这行代码 > proxy_pass http://000.000.000.000;
## 这行代码的意思是 nginx 自身调用程序代理请求该地址,post问题解决

$ nginx -t
>>
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$ nginx -s reload

一切看似完美,找到公司运维,阐述了伟大的跨国方案,并表示测试已经ok,
运维表示,反正已经挂了,死马当活马医,先改解析试试吧
改完解析,本来说好好的post方法不好使的,请求超时,
向运维大佬解释了post代理原理后,
大佬说:懂了,是我禁用了别人的80端口的请求,所以向其他地方请求的时候,返回结果也可以表示为其他服务器的80端口向本机请求,防火墙给挡住了。

于是大佬啪啪啪,改了防火墙,再测试post ok

## 看不太懂的防火墙配置
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

大概原来解析是这样

  • 本来:

备案域名 –解析–》 国内服务器

  • 现状:

备案失效域名 —解析 XX 阿里云挡住了 XX—》 国内服务器

  • 临时方案:

备案失效域名 —解析–》 境外服务器 — 重定向or代理 —-》国内服务器ip(配置访问默认项目(sdk项目))

    原文作者:李渊桥
    原文地址: https://segmentfault.com/a/1190000014182981
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞