CloudFlare + Nginx反代 + Nginx 实现 nat vps 搭建博客

2020-05-11 17:40:00 浏览数 (1)

吐槽

好吧,我知道前缀实在有点多。但是既然是折腾,那么越麻烦,折腾成功后就越快乐。

前由

月前,在 gullow上买了个年付 2$ 的 nat 小鸡,但是国内不能正常访问。但是呢,又想着在这个袖珍 vps 上搭建个小博客耍耍,于是想起了 cloudflare 这个神奇的 CDN 与 Nginx 反代的结合。

需要的工具:cloudflare,一台非 nat 的 vpsnat vps

是的,你没看错,是需要两台 vps 。

安装 web 环境

为了避免混淆,非 nat 的 vps 称为 Anat vps 称为 B

在 A 和 B 上都安装好 lnmp 环境,可以用宝塔或者lnmp一键安装包完成。B 的 php 版本要大于 5.3 ,否则安装 typecho 失败。可参考链接128M vps 安装lnmp。

域名解析

我是在 cloudflare 进行解析的。将域名指向 A 的 ip 地址即可。

配置 A 的 nginx

添加 A 的 nginx 的 vhost 文件(宝塔在 /www/server/panel/vhost/nginx/ 文件夹下,lnmp可以用 lnmp vhost add命令,不用)。配置如下:

代码语言:javascript复制
server
    {
            listen 80;
            server_name 域名;

            if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
            return  403;
            }

            location / {

            sub_filter_once off;
            proxy_set_header Host $host;
            proxy_pass http:// B 的ip地址:端口;
            proxy_set_header Accept-Encoding "";
            }
    }

配置文件中的 域名http://B的ip地址:端口 记得修改成自己的,端口在服务商给nat小鸡分配的端口范围之内,并且没被使用就行。配置完成后,记得重启 nginx

配置 B 的 nginx

B 的 nginx 的 vhost 文件配置如下(此为lnmp一键安装环境的配置,注意不要选择安装证书):

代码语言:javascript复制
server
{
    listen 端口;
    #listen [::]:80;
    server_name 域名 ;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/nat.ikls.tk;

    include rewrite/typecho.conf;
    #error_page   404   /404.html;

    # Deny access to PHP files in specific directory
    #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }

    include enable-php-pathinfo.conf;

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {   
        expires      30d;
    }

    location ~ .*.(js|css)?$
    {   
        expires      12h;
    }

    location ~ /.well-known {
        allow all;
    }

端口和域名填跟上一步一样的。重启nginx

上传安装文件到网站目录

我的目录在 /home/wwwroot/nat.ikls.tk 下,并且要安装的是 typecho 。把 typecho 安装文件解压后,然后直接访问域名。

完成搭建

按照 typecho 搭建步骤安装。

可以看到,网站搭建完成。直接访问 http://nat.ikls.tk/ 即可。

代码语言:javascript复制
当然这只是一个搭建记录,照葫芦画瓢,了解原理可以创造更多好玩的应用。

0 人点赞