昨天用nginx和cerbot免费的让本身的网站能https访问了,整个流程很简单,基本上不会碰到问题,连接在这:nginx使用certbot免费ssl证书,https很简单今天又突发奇想,给本身的网站配置一下二级域名,要否则很杂乱,好比我转们写博客的,就搞个二级域名blog,好比我专门弄接口,就搞个二级域名api。想法来了,直接行动。html
步骤大体分为三步:nginx
1.DNS添加二级域名
2.nginx配置二级域名
3.二级域名配置ssl
4.让配置文件生效vim
要想配置二级域名,DNS那边确定要先配置一下,个人域名注册商是godaddy,我以godaddy为例,其余域名商也大同小异。segmentfault
在记录中添加 A类型,主机填你想要的二级域名,好比个人是api,那么我直接填api,指向填主机ip地址。
我这里放个表格示意一下。api
类型 | 主机 | 指向 | TTL |
---|---|---|---|
A | api | 52.68.xxx.xxx | 默认便可 |
DNS配置完了,就来到nginx这边,其实配置方法和域名配置大体相同,我在这里记录一下。session
nginx.conf里面已经有了咱们域名的配置,如今咱们还要加二级域名api的配置,这只是一个二级域名,若是是多个,nginx.conf就会变得很是杂乱,因此咱们新建配置文件。网站
在conf目录下也就是nginx.conf同级新建一个目录专门用来存放咱们本身的配置文件。
在conf目录下运行命令code
mkdir conf.d chmod 777 conf.d
新建目录并赋予权限server
cd conf.d vim api.akazwz.com.conf
加入一下内容htm
# 80 server server { listen 80; server_name api.akazwz.com; return 301 https://$server_name$request_uri; location / { root html/api; index index.html index.htm; } }
这个加入的server是配置80端口访问的
再次编辑 新建的配置文件,在后面加上
# 443 ssl server { listen 443 ssl; server_name api.akazwz.com; ssl_certificate /etc/letsencrypt/live/api.akazwz.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/api.akazwz.com/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { # 这里我直接写的root 而后是文件夹,也能够写成其余的服务端口好比 # proxy_pass http://127.0.0.1:8080; root html/api; index index.html index.htm; } }
这里是配置443 ssl也就是https访问的。
ssl_certificate /etc/letsencrypt/live/api.akazwz.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/api.akazwz.com/privkey.pem;
这两个后面的路径就是用certbot生成的。具体的能够看个人另外一篇文章 nginx使用certbot免费ssl证书,https很简单
咱们本身新建的配置文件如今是没有生效的,须要在nginx.conf include进去才能生效。
编辑nginx.conf,在http{}里面最后一行加上
include conf.d/*.conf;
这就包括了conf.d文件夹里面的全部.conf配置文件。
注意:修改配置文件时要注意后面的 " ; "。
老操做,改完配置重启生效
systemctl stop nginx systemctl start nginx systemctl status nginx
到了这里,你的二级域名能访问了,并且仍是https。就记录到这里。