服务器教程(四) | 域名相关
唠唠闲话
域名相关知识与操作。
域名相关
域名注册
-
关于域名,以
www.wzhecnu.cn
为例,分三段理解.cn
称为顶级域名或一级域名,象征网站属性。比如最常见的.com
是company
的缩写;.org
是organization
的缩写;.cn
代表国内域名。wzhecnu.cn
称为二级域名,由个人注册,相当于身份 ID,需购买和注册。www
为三级域名,可自由设置,数目不限,比如test.wzhecnu.cn
-
域名注册有许多平台可选,比如万网的阿里云域名
-
第一次购买域名需要实名认证,按流程走,之后购买新域名直接选择已认证的信息。
-
域名购买后,进入控制台,查看域名列表。
域名备案
- 购买域名后,建议备案,否则国内使用不方便,比如:
- 网站被微信屏蔽时,申诉要用备案号
- 在七牛云设置个人域名作外链,要求域名经过备案
- 当然,如果只是简单的学习记录,不考虑分享之类的问题,不备案影响不大。
- 域名备案要先购买服务器,然后在服务器所在平台备案。
- 初次备案,可能觉得流程繁琐;最近第二次备案,熟悉了也就几步操作。
- 主域名和
www
域名必须解析到备案所在服务器,如果要解析到其他服务器,可以再做“接入备案”。
域名解析
域名解析是把域名指向网站空间IP,让人们可以通过注册的域名方便地访问到网站的一种服务。以阿里云添加域名解析的方法为例:
几点说明:
- 主机记录填
@
代表主域名解析地址,即wzhecnu.cn
指向的地址 - 主机记录填其他代表二级域名,比如
www
代表www.wzhecnu.cn
- 记录类型填
A
记录,则记录值填写 IP 地址 - 记录类型填
CNAME
,则记录值填写域名地址
ssl 协议
用 http
访问网站左上角会出现感叹号提醒,解决方法是添加 ssl 证书,改用 https
访问
参考文章
阿里云:在 Nginx 独立服务器上安装证书
CSDN:ubuntu nginx 配置 https 服务器
证书申请
-
提供免费 ssl 证书申请的平台有很多,以阿里云为例,申请方法点这里。申请规则可能会变动,我申请时有 20 个免费证书,有效期一年。
-
在域名控制台,点击创建证书
-
选择证书,点击立即申请
-
在弹出窗口中,填写相应信息,单击下一步
-
按要求添加域名解析记录,验证通过后点击提交审核,如果域名阿里云,添加解析这步可以省略
-
审核通过后,点击下载证书,下载 Nginx 文件,并解压
证书配置
-
将文件上传到服务器的
/etc/nginx/cert
目录(先上传到用户目录,比如~/Download/
,再命令行移动) -
编辑 Nginx 的
default
文件1
sudo vim /etc/nginx/sites-available/default
或者直接下载到本地,修改后再上传(推荐!)
-
在
default
文件中增加端口 4431
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17server {
listen 443 ssl;
server_name xxx.xxx.com; # 将 xxx.xxx.com 替换成证书绑定的域名。
root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem; # 需要将 cert-file-name.pem 替换成已上传的证书文件的名称。
ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.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 / {
root /var/www/hexo; # 站点目录
index index.html index.htm;
}
}这里加注释
#
的部分都要改自己的,如果多个域名就复制多段。 -
强制
https
:在 80 端口中,添加一行rewrite
,比如1
2
3
4
5
6
7
8
9
10
11
12server {
listen 80;
server_name www.wzhecnu.cn;
root /var/www/hexo;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
rewrite ^(.*)$ https://$host$1; # 将所有 HTTP 请求通过 rewrite 指令重定向到 HTTPS。
location / {
index index.html index.htm;
}
}server_name
参数填自己的域名,如果有多个域名用空格隔开 -
域名重定向,将主域名重定向到
www
域名,参考这里1
2
3
4
5server {
listen 80;
server_name wzhecnu.cn;
return 301 https://www.wzhecnu.cn$request_uri;
} -
重启 Nginx 服务,使得改动生效。
1
sudo service nginx restart
注:如果重启提示如下错误,可能是语法错误,比如漏了
;
。
注:关于 Nginx 及相关语法,有需要再深入了解和学习。