nginx配置二级域名以及ssl证书,真的很简单

Posted akazwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置二级域名以及ssl证书,真的很简单相关的知识,希望对你有一定的参考价值。

昨天用nginx和cerbot免费的让自己的网站能https访问了,整个流程很简单,基本上不会碰到问题,链接在这:nginx使用certbot免费ssl证书,https很简单今天又突发奇想,给自己的网站配置一下二级域名,要不然很杂乱,比如我转们写博客的,就搞个二级域名blog,比如我专门弄接口,就搞个二级域名api。想法来了,直接行动。

    • -

步骤大致分为三步:

1.DNS添加二级域名
2.nginx配置二级域名
3.二级域名配置ssl
4.让配置文件生效

    • -

1.DNS添加二级域名

要想配置二级域名,DNS那边肯定要先配置一下,我的域名注册商是godaddy,我以godaddy为例,其他域名商也大同小异。

在记录中添加 A类型,主机填你想要的二级域名,比如我的是api,那么我直接填api,指向填主机ip地址。
我这里放个表格示意一下。

类型主机指向TTL
Aapi52.68.xxx.xxx默认即可

2.nginx配置二级域名

DNS配置完了,就来到nginx这边,其实配置方法和域名配置大致相同,我在这里记录一下。

nginx.conf里面已经有了我们域名的配置,现在我们还要加二级域名api的配置,这只是一个二级域名,如果是多个,nginx.conf就会变得非常杂乱,所以我们新建配置文件。

在conf目录下也就是nginx.conf同级新建一个目录专门用来存放我们自己的配置文件。
在conf目录下运行命令

mkdir conf.d

chmod 777 conf.d

新建目录并赋予权限

cd conf.d
vim api.akazwz.com.conf

加入一下内容

# 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端口访问的

3.二级域名配置ssl

再次编辑 新建的配置文件,在后面加上

# 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很简单

4.让新增的配置文件生效

我们自己新建的配置文件现在是没有生效的,需要在nginx.conf include进去才能生效。

编辑nginx.conf,在http{}里面最后一行加上

include conf.d/*.conf;

这就包括了conf.d文件夹里面的所有.conf配置文件。
注意:修改配置文件时要注意后面的 " ; "。
老操作,改完配置重启生效

systemctl stop nginx
systemctl start nginx
systemctl status nginx

到了这里,你的二级域名能访问了,而且还是https。
就记录到这里。

以上是关于nginx配置二级域名以及ssl证书,真的很简单的主要内容,如果未能解决你的问题,请参考以下文章

SSL/TLS深度解析--在Nginx上配置证书链及多域名证书

nginx配置多域名多个ssl证书

一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS

nginx配置多个TLS证书,以及TLS SNI简介

配置域名的ssl证书/https(Nginx)

配置域名的ssl证书/https(Nginx)