将博客放在自己的VPS上,免不了配置 nginx 及 https,如果不配置 https,浏览器上**不安全
**那三个字,实在是太刺眼。所以这篇博客,将记录整个折腾过程。
- nginx 的安装
- https 的证书配置
- http 重定向到 https
- www 重定向到非不带 www 的域名
接下来的操作,都是在 Ubuntu 18.04 版本上进行的。
域名解析的配置
首先要先自己的域名解析到自己的 VPS,需要配置两条A记录,一条是 @,一条是 www,都是指向自己的 VPS IP。
安装 nginx
apt install nginx
申请 ssl 证书
这里,我们使用腾讯云免费的证书,访问 https://console.qcloud.com/ssl,然后点击页面上的 申请免费证书,然后填写信息,注意在域名身份认证时,选择 手动DNS验证,然后点击确认申请,根据给出的提示,在自己的域名上配置TXT解析,等待一段时间,解析成功后,下载证书。
下载下来的是一个压缩包,里面有一个 Nginx 目录,这个目录里有两个文件,xxx.crt 和 xxx.key。需要将这两个文件上传到自己的 VPS。放在 /etc/nginx/ssl 这个目录下,如果 ssl 这个目录不存在,就使用命令 mkdir /etc/nginx/ssl
创建目录。
创建网站资源目录
首先创建我们的网站资源目录,假设我们放在 /var/www/imoegirl.com 这个目录下。注意 imoegirl.com 是一个目录,如果不存在,就先使用 mkdir 创建。imoegirl.com 可以换其他名字。
为了测试,我们在 imoegirl.com 这个目录下新建一个 index.html,内容如下
<h1>Hello iMoegirl</h1>
配置 nginx
接下来就是配置 nginx,按下面的步骤进行
- 删除默认的配置文件
rm /etc/nginx/sites-enabled/default
- 创建我们自己的配置文件,imoegirl.com 可以换成自己的名字,但是必须以 .conf 结尾
vim /etc/nginx/conf.d/imoegirl.com.conf
- imoegirl.com.conf 的内容如下,注意将代码中 https://imoegirl.com 换成自己的域名
# 下面这段,是将 http 重定向到 https,不管带不带 www
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://imoegirl.com$request_uri;
}
# 下面这一段,是处理带 www 的域名
# 最后会重定向到 不带 www 域名
server {
listen 443 ssl http2;
server_name www.imoegirl.com;
ssl_certificate /etc/nginx/ssl/imoegirl.com.crt;
ssl_certificate_key /etc/nginx/ssl/imoegirl.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
keepalive_timeout 70;
root /var/www/imoegirl.com;
index index.html index.htm index.nginx-debian.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
return 301 https://imoegirl.com$request_uri;
}
# 下面这一段,是处理不带 www 的域名,也就是最终我们想要的
server {
listen 443 ssl http2;
server_name imoegirl.com;
ssl_certificate /etc/nginx/ssl/imoegirl.com.crt;
ssl_certificate_key /etc/nginx/ssl/imoegirl.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
keepalive_timeout 70;
root /var/www/imoegirl.com;
index index.html index.htm index.nginx-debian.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
上面的代码,注意几个地方
- imoegirl.com 都需要换成自己的域名
- ssl_certificate 换成自己的证书文件路径
- ssl_certificate_key 换成自己的 key 文件路径
- root 后面跟的是自己的网站资源路径
重启 nginx
service nginx restart
所有配置结束,可以访问自己的域名测试一下。