昨天用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。就記錄到這裏。