
第一次写文章,心里有点激动,我是一个年轻的创业者,虽然现在快凌晨3点,但是我不困(我喜欢早上睡觉)。
有一天客户打来的电话说,他们的客户在马来西亚经常出现进入不了小程序,我问了下他们基本情况:他们在阿里云深圳租用了云服务器,有些没办法访问,其他地区又很正常,他们的技术排查过一些基础的问题,最终通过RMB付费给我们,于是我开始分析,总结了下是2个原因引起的故障:
1.DNS服务器出问题,用户没办法通过DNS解析到IP(这种原因概率性很低,现在的各种云DNS解析技术已经很好了);
2.马来西亚解析正确的IP但无法访问(我个人认为这种原因比较大)。
第一步:我开始操作了!我在腾讯云上面购买了一个香港地区服务器(CENTOS6.9 X64)。
第二步:先ping了下域名,发现ping正常,延迟还挺低的。
第三步:装了一个Nginx的变种Tengine(淘宝的开源项目,可以了解下)。然后开始一顿长达2分钟的操作,装好了Tengine ,按照正常的Nginx的配置(代码在后面贴着)。
第四步:ping了下域名,通过hosts重定向的访问让本机访问IP的时候可以正常回到国内的服务器(这个不会,你不用折腾了,你可以找我们白米软件,付费给你解决,且不便宜的那种)。然后这个时候我就需要找个dns或者自建dns,
第五步:我首先想到了dns.com,发现如果需要解析到境外的居然要给钱(抱歉,这个钱我不想给),打开腾讯云控制面板,发现他们有免费的解析服务(奈斯)。
第六步:我让他们的技术人员将dns解析到腾讯云,并且把之前的所有解析拷贝了一份给我。我可以是一个一个的加,真累。设置了默认的IP为国内回源,设置了境外解析到香港的服务器,整个过程大于30分钟。
突然客户打电话给我,我说应该是可以了(客户当时的心情是一万个草泥马,这么简单,这么贵)。观察了几天发现马来西亚的用户大概可以访问了。但是还有个别的用户依然无法访问甚至其他国家都影响了(我们虽然贵,但是售后很好呀),这个时候我发现可能dns还是有点问题(毕竟是免费的),我添加了3条dns解析记录,默认回到香港,境内走深圳,境外也是香港。就这样没有问题了。
在这里,需要补充下。因为业务问题,不能直接使用香港的服务器,因为存在备案问题,只能通过nginx做转发。如果你的程序不需要备案,你直接租个香港服务器就ok了。
NGINX配置
server {
listen 443 ssl;
server_name mini.***.com;
ssl_certificate /home/crt/mini.*.com.crt;
ssl_certificate_key /home/crt/mini.***.com.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
client_max_body_size 50m;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
access_log /var/log/nginx/mini.***.com-access.log main;
error_log /var/log/nginx/mini.****.com-error.log error;
location / {
proxy_pass https://mini.***.com;
}
}