搭建一个网站的经验手册

前言

搭建网站过程中遇到经验、技术、流程等问题,在解决后觉得有必要归纳总结下,以方便自己的记忆的同时可以帮助他人,因为我的服务器和域名都是在腾讯云上处理的,所以相关快捷链接我均放置腾讯云的,还望体谅。

须知

搭建网站需要完成如下事项

  • 服务器
  • 域名
  • SSL 证书
  • DNS 解析配置
  • Git (解决项目存储&拉取)
  • Web 服务
  • Supervisor 守护进程

服务器(0 ~ 1天)

购买须知
国内的价格均是按照购买时间提供不同的折扣优惠,在 3年以上就打 5折,当然如果有学生证那就是打骨折。

一. 购买服务器
购买域名可以在腾讯云&阿里云进行购买, 服务器购买链接

建议选择 ubuntu ,另外因为是云服务器所以支持弹性扩容,一般来讲可以买一个标品,后续在升级硬盘容量、带宽、内存、CPU 即可, 我买的 3年价格是 3006。

二. 安装访问服务
购买完成后,自己就会提示您安装哪些服务,选择需要的即可,我这边是自己定制安装的,所以就跳过这。

  1. 下载 SSH 客户机(用于连接服务器),XSHELL, 如果是家庭和学校使用可以选择免费许可,只需要填写邮箱即可,若企业使用可以下载 PUTTY 或直接用腾讯云后台访问控制台。
  2. 配置 SSH 密钥(比传统的密码更安全,并且可以免登)相关配置链接,示意图如下所示;
    在这里插入图片描述
    创建完成后,会生成 pem 文件,请妥善保存,随后选择绑定实例服务器即可。
  3. 访问服务器, 打开对应 XSHELL 软件,创建并且绑定刚才保存的 pem 文件,如下图所示
    在这里插入图片描述
  4. 此时双击即可进入该服务器。

三. 相关命令汇总

# 更新相关软件包索引或包列表
sudo apt update

#切换 root, 可以解决许多权限问题
sudo su - 

四:在对应腾讯云后台记录相关公网 IP
在这里插入图片描述

域名 (15 ~ 40天)

购买须知

  1. 域名一旦付款注册成功是不能退款,所以一定要选好一个域名;
  2. 国内都要完成实名认证(除外 .org / .name 除外),要准备自己的身份证和手机号
  3. 国内域名都要备案。

一. 购买域名
购买域名可以在腾讯云&阿里云进行购买, 相关:域名购买链接

在二级域名满意的情况下,尽可能选择 com、cn 、net一级域名, com、net 的域名往往比其他域名要贵,在 2-3倍的情况,例如我买的 puppet-king.com 75一年(不过这只是首年的价格,续购会涨价…)
在这里插入图片描述

二. 实名认证&域名备案
备案域名相关问题链接

国内域名都要备案,而备案是按照工作日计算的,不同的省份时间不等,例如江苏是 20个工作日、上海是 10个工作日,没有对应身份证位置可以提供相关居住证明;
完成域名实名认证后,需等待3个自然日(非腾讯云注册的域名需要满3个工作日)后再提交备案申请。

  1. 需要确认主体,如果是个人需要有效身份证;
  2. 基础信息校验, 这里需要选择域名和云资源(即服务器,貌似这个时候就要购买一个啦)
    在这里插入图片描述
  3. 填写网站相关资料,提交申请

这里需要注意的备案是两步, 1是腾讯云这类的运营商的审查(0 ~ 2天),作用是预检,因为万一到对应省份的管局拒绝了,就要重头在来,不过腾讯云这类检查过了基本上都没有问题,然后会在后面会收到电话和短信,记得查收。

SSL 证书(0 ~ 1天)

腾讯云证书管理

证书可以申请免费的,只是根据国家要求只能申请 1年的,需要记得及时更新;

这里的证书是可以申请多个,以配置不同的二级域名的(泛域名需要花钱买),腾讯云可以免费申请 50个。
在这里插入图片描述

申请好了会收到邮件通知,这个时候可以登录上述地址访问查看,下载对应证书文件,因为我们是搭建 Nginx 服务,所以选择 Nginx,如图所示
在这里插入图片描述
下载后,保存对应 zip 文件,之后在服务器相关在进行配置说明。

DNS 解析配置 (15 ~ 30分钟)

相关地址:DNSPod
添加对应 A类 记录,记录值记得填写 IP地址, 如示例图所示
在这里插入图片描述
添加完成后, 0 ~ 30分钟就会生效

特别说明
除了 A类记录, 还有 CNAME 类型,配合 七牛云存储 可以实现 CDN的实现,可以让别人更快捷的访问你的资源;
此外我们还可以配置属于自己的企业邮箱,可以登录腾讯企业邮,绑定自己的域名即可,未实名的可以创建 10个企业邮箱。

Git

相关链接: GitHub

因为都是在本地开发,而传统的 ftp 的上传难免有遗漏和操作繁琐,所以选择使用 git 来解决文件同步问题。

SSH 相关命令

# 安装 git 服务, 记得生成生成 证书
sudo apt install git

# git 证书配置命令 
# 配置全局昵称和邮箱
git config --global user.name “自己喜欢的昵称”
git config --global user.email “自己的邮箱”
# 生成公钥、秘钥(填自己的邮箱,执行后需要按几次 enter 直到结束)
ssh-keygen -t rsa -C “自己的邮箱”

# 访问 /root/.ssh 目录
# 修改 config, 确保访问 gitlab、 github 使用对应 ssh
cd /root/.ssh && vim config
# 粘贴如下内容, 这里配置 github
Host github.com
IdentityFile ~/.ssh/github
User git

# 导出 id_ras.pub 公钥, 方便访问 github 后粘贴内容
sz id_ras.pub

服务端常用命令

# 初始化生成 git init 文件
git init

# 克隆项目到本地
git clone 地址

# 拉取远端资源
git pull origin 分支

# 查看最近修改记录
git log -p -2

Supervisor 配置

配置目录: /etc/supervisor/
创建子进程文件,在 conf.d 目录下, 创建 xxx.conf 文件, 示例文件如下

#项目
[program:xxx]
#脚本目录
directory=/home/blog/
#脚本执行命令
command=hexo s

#多进程名称肯定不同,匹配多个
process_name=%(program_name)s_%(process_num)01d
#启动多个进程
numprocs=1

#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如
果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=false
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1

#脚本运行的用户身份 
user = root

#日志输出 
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20MB
#stdout日志文件备份数
stdout_logfile_backups = 20

相关命令

# 在每次创建新文件或修改配置后,需要重新加载配置
supervisorctl reload

# 查看当前运行状态
supervisorctl status

# 关闭服务器, 可以使用 all、或指定进程,支持通配符 *
supervisorctl stop
# 开启服务器, 可以使用 all、或指定进程,支持通配符 *
supervisorctl start

特别说明
若出现命令未生效,需要先启动 supervisord 服务, 在使用 supervisorctl;
该进程无法读取环境变量,需要在文件中单独配置,可以新增一行 environment=GOCACHE=“/root/.cache/go-build”,GOPATH=“/home/GoProject”,SMS_ENV_MODE=“release” 这类。
若出现有时候启动不了可以查看对应错误日志,也可以使用 lsof -i:端口号,来看是否因为端口占用

Nginx 配置

配置目录: /etc/nginx/

配置文件修改示例

 server {
                listen 443 ssl;
                server_name 自己的域名;
                ssl_certificate cert/自己的证书.pem;
                ssl_certificate_key cert/自己的密钥.key;
                ssl_session_timeout 5m;
                ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;
                location / {
                        proxy_pass http://localhost:自己的端口号;
                }
        }

这里需要注意的是,nginx 实现的作用是反向代理,因为一台服务器可能要运行多个服务,所以需要通过 443 端口接受信息转发给 web 服务, 另外相关配置文件均是从 SSL证书 环节 下载下来的,可以使用如下命令导入对应文件

# 导入文件
rz 

相关命令

# 开启
service nginx start

# 关闭
service nginx stop

# 重启
service nginx restart

# 平滑加载配置
service nginx reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值