作为一个近7年的wordpress粉,也终于受不了程序代码比你的博文占用空间更多的事实,因此设计了一款Jekyll主题Renge后就把整站迁移到了基于Jekyll的GitHub Pages。但是GitHub Pages也不是完美,主要的缺点如下:

  • 国内访问不是特别友好,掉包比较严重
  • 不支持SSL
  • 百度不收录
  • 这三点最让我苦恼的是不支持SSL,因为我的博客其实没有太多流量,也不在乎国内能不能访问,但是作为一个被网警打过电话的人来说,不支持SSL还让我如何欢乐地吐槽?

    比较通常的做法是挂一个类似Cloudflare或者其他支持SSL的CDN。但是Cloudflare在国内基本上是被抢的,原因主要是百度和它合作后使用国内加速节点必须备案。所以Cloudflare就不考虑了。于是就准备通过一台洛杉矶VPS安装Nginx自己反代github pages的网站,这样就完美解决了以上三个问题。

    设置步骤如下:

    首先,安装amh4.2,并且安装反代模块。这步比较简单,并且4.2是免费的。

    安装Let's Encrypt SSL,具体参考的是军哥的博文:http://www.vpser.net/build/letsencrypt-free-ssl.html

    然后使用我给出的配置文件修改相应的反代域名和自己的域名,上传至nginx的conf文件夹下,重启nginx服务即可。

    理论上只需要安装nginx和subs_filter两个模块即可,安装面板有点小题大做。

    server {
            listen 443 ssl;
            server_name www.junchaowang.com junchaowang.com;
            index index.php index.html index.htm;
    
            location / {
    		        default_type text/html;
    		          subs_filter_types text/css text/xml;
                  subs_filter 'http://billyfish152.github.io' 'https://www.junchaowang.com' g;
    		          #proxy_set_header X-Real-IP  $remote_addr;
    		          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		          proxy_set_header Referer http://billyfish152.github.io;
    		          proxy_set_header Host blog.junchaowang.com;
    		          proxy_pass http://billyfish152.github.io;
    		          proxy_set_header Accept-Encoding "";
            }
    
            ssl_certificate /etc/letsencrypt/live/www.junchaowang.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/www.junchaowang.com/privkey.pem;
            ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            ssl_session_cache shared:SSL:10m;
    }