如何搭建个人博客网站(腾讯云为例
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;
}
}