网站搭建手册

125 阅读2分钟

如何搭建个人博客网站(腾讯云为例

1. 购买服务器(轻量级应用服务器):

目前个人所用是腾讯云轻量级应用服务器,镜像选择为centos8(单纯是因为公司服务器也是centos8),购买完成后稍等片刻就可以登录,为了本地ssh登录方便,可在更多里面管理开启ssh远程登录,登录的地址为公网ip

ps:可以在服务器防火墙添加规则,也就是允许访问的端口(如8090),这样我们的应用就可以直接通过ip:端口的方式访问了



2. 购买域名:

需要实名认证+注册局申请(可微信小程序)+ 网站备案,网站备案需要实名注册后两天才行。

购买完成后需要把域名解析到我们购买的公网ip上,在我的域名-解析-快速添加解析可设置(直接售前售后咨询即可)



此时在本地通过cmd 去ping我们的域名,是可以正常解析的。



不过这时候在浏览器访问我们的域名还不行,因为我们还需要一个web服务器nginx,为服务器做反向代理

3. nginx配置:

安装nginx并启动,直接yum install -y nginx,启动后即可

这时候访问公网ip应该是nginx页面,访问域名会提示未备案 网站备案主要要做ICP工信部备案,与公安备案。这步根据腾讯云的教程即可,提供资料较多但不严格。

4. 部署应用:

这里是使用的开源博客软件halo。具体的部署使用参考官方文档

4. nginx配置:

在配置nginx文件之前,需要配置https(http与https)访问需要先申请ssl证书(对传输内容进行加密防止篡改,并引入第三方机构认证防止中间人攻击),这一步腾讯云也有非常友好的教程,申请完成后将证书下载下来并放到nginx下目录即可。 安装nginx并启动,直接yum install -y nginx,启动后即可 这时候访问公网ip应该是nginx页面,之后我们配置nginx.conf文件, /etc/nginx, 编辑nginx.conf文件,主要配置文件如下

 upstream halo {
       server 127.0.0.1:8090; // 应用所占端口
    }
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  xcyang.club; // 域名,只有一个服务,不写也行
        client_max_body_size 1024m;
        root         /usr/share/nginx/html;
        return 301 https://$server_name$request_uri; # 访问http时重定向到https

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
         proxy_pass http://halo;
         proxy_set_header HOST $host;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
           proxy_pass http://halo;
           expires 30d;
           access_log off;
        }
       location ~ .*\.(js|css)?$ {
          proxy_pass http://halo;
          expires 7d;
          access_log off;
       }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
    server {
        listen       443 ssl;
        listen       [::]:443 ssl;
        server_name  xcyang.club;
        ssl on;
        root         /usr/share/nginx/html;

        ssl_certificate "/etc/nginx/xcyang.club_bundle.crt";
        ssl_certificate_key "/etc/nginx/xcyang.club.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        location / {
        proxy_pass http://halo;
        }
    }