一、简介

这篇文章主要记录搭建博客以及其他网站时用到的一些内容,包括:

  • 获取域名
  • 配置 Cloudfla DNS 解析
  • 配置 Https
  • 可能的 Nginx 配置

二、获取域名

学生获取域名可以前往Github 教育认证,完成教育认证后可以在教育优惠包中找到".TECH domain free for 1 year",可以在里面领取为期一年的免费域名。

.TECH 域名

DNS 域名解析

Cloudflare提供了免费的 DNS 解析服务和代理服务。免费计划的代理印象比较深的一个限制是单个文件上传大小限制在 100MB,如果要搭建Alist网盘服务的话,可能要注意关闭 Cloudflare 的代理,让其只解析 DNS。

配置 HTTPS

搭建网站一般都需要配置 HTTPS,但是大部分 HTTPS 证书的申请都需要付费,自签名的证书又没有 CA 认证,会有一些问题。白嫖的方案是使用Let's EnCrypt,提供免费的 ssl 证书,而且也是被认证的,不会有签名问题。它使用一个名为 Cerbot 的客户端来访问,可以访问Cerbot 官网查看,linux 下可以使用pipsnap安装命令行客户端,具体参见官方教程

Nginx 配置

Nginx 新建一个网站配置,可以在/etc/nginx/conf.d/路径下新建一个<filename>.conf的文件,文件可以按自己喜好命名。下面是一个样例的配置

# /etc/niginx/conf.d/web.conf
server {
        # 设置nginx https监听的端口为443
        listen  443 ssl;
        # 设置域名,your.domain.com应该是你的网站
        server_name your.domain.com;
        # 证书文件路径
        ssl_certificate         /path/to/your/certificate;
        # 证书私钥文件路径
        ssl_certificate_key     /path/to/yout/privatekey;
        # ssl验证配置
        ssl_session_timeout     5m;
        # 安全链接可选加密协议
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        # 配置加密套件
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        # 使用服务器端首选算法
        ssl_prefer_server_ciphers on;

        error_page      404             /404.html;
        error_page      500 502 503 504 /50x.html;

        # 错误网页
        location = /50x.html {
                root html;
        }

        # 一个http代理的配置
        # location = / {
        #         proxy_pass http://127.0.0.1:10086;
        #         proxy_intercept_errors on;
        #         error_page 400 = https://跳转的域名;

        #         # 代理
        #         proxy_http_version 1.1;
        #         proxy_set_header Upgrade $http_upgrade;
        #         proxy_set_header Connection "upgrade";
        #         proxy_set_header Host $http_host;
        #         proxy_read_timeout 600s;
        #         # 传递客户端 IP 地址
        #         proxy_set_header X-Real-IP $remote_addr;
        #         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # }

        # 一个alist的配置
        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Range $http_range;
                  proxy_set_header If-Range $http_if_range;
            proxy_redirect off;
            # 此处应该为alist监听的网页和端口
            proxy_pass http://127.0.0.1:9091;
            client_body_timeout 600s;
            proxy_connect_timeout 600s;
            proxy_read_timeout 600s;
            proxy_send_timeout 600s;
            # the max size of file to upload
            client_max_body_size 4000m;
        }
}