Nginx设置子域名解析

2019-12-23 17:34:03 浏览数 (1)

一直听说Nginx配置子域名比较简单,但是步骤比较繁琐,并且PHP解析比较恶心人,不过,这个坑已经踩完了 那就看看我写的文档吧!

不过需要注意的是:我的服务器是Ubuntu16.04,本机安装的环境是原始的LNMP环境,服务器购买的是阿里云服务器,SSL证书采用的也是阿里云的免费SSL证书,废话不多说了,开始配置吧!

准备工作

  1. 一个好用的SSH客户端,远程操控你的Linux服务器使用 推荐一个客户端:Putty 下载地址:https://debuginn.pipipan.com/fs/19432704-365589566 良心推荐一个客户端,是需要付费的:FinalShell【链接】;
  2. 本机环境系统最好是Ubuntu16.04,但都是大同小异,Ubuntu基本一致;
  3. 先配置好自己本机的环境,我的是LNMP环境,不知道怎么配置的话,我这有教程 《Ubuntu16.04部署LNMP环境》;
  4. 在自己网站根目录下新建自己子域名为名字的文件夹:例如我的文件夹位置在:/var/www/html/,新建文件夹名称为bbs.debuginn.cn。

阿里云SSL证书下载

申请完证书之后,需要点击右下角申请,填写自己二级域名名称及地区提交审核

填写完信息之后提交填写申请,等待审核,审核完毕之后进行下载对应之于民的SSL证书,选择Nginx证书下载:

一般下载的证书都是有两个文件,分别是*.key和*.pem两个文件。

上传证书

将文件上传至服务器nginx文件夹下:

一般Nginx文件夹位置:/etc/nginx/

在nginx文件夹下新建一个cert文件夹,并把认证文件上传至自己创建的文件夹下

代码语言:javascript复制
# 打开nginx文件位置
cd /etc/nginx
# 创建cert文件夹
mkdir cert
# 安装lrzsz软件
sudo apt-get install lrzsz
# 上传命令:rz
# 下载命令:sz 文件路径/文件名称
# 上传本地证书文件
rz
# 在弹出的对话框中选择要上传的证书文件即可

填写配置

看一下你的nginx文件目录和我的文件目录一致么,一致的话那就来吧,我的nginx文件版本是:nginx version: nginx/1.10.3 (Ubuntu)

创建子域名配置文件

打开sites-available文件夹,创建一个自己子域名.conf文件,例如bbs.debuginn.cn.conf文件

代码语言:javascript复制
# 打开文件位置
cd /etc/nginx/sites-available/
# 创建文件
sudo touch bbs.debuginn.cn.conf
# 编辑文件
vim bbs.debuginn.cn.conf
子域名配置设置
代码语言:javascript复制
server {
    # HTTPS端口设置
    listen 443;
    # 子域名设置
    server_name bbs.debuginn.cn;
    # 开启SSL
    ssl on;
    # 子域名对应文件夹位置
    root /var/www/html/bbs.debuginn.cn;
    index index.html index.php;
    # 子域名加载对应SSL证书文件
    ssl_certificate  cert/**_bbs.debuginn.cn.pem;
    ssl_certificate_key cert/**_bbs.debuginn.cn.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 / {
        try_files $uri $uri/ /index.php?$args;
    }
    # PHP解析设置
    location ~ .php$ {
        include snippets/fastcgi-php.conf;

        # With php7.0-cgi alone:
        # fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}

server {
    # 端口设置
    listen 80;
    # 二级域名设置
    server_name bbs.debuginn.cn;
    # 301重定向设置
    return 301 https://$server_name$request_uri;
}

链接配置

配置好了文件之后,执行下列命令:

代码语言:javascript复制
ln -s /etc/nginx/sites-available/bbs.debuginn.cn.conf /etc/nginx/sites-enable

执行完命令之后看看sites-enable文件是否出来了配置文件的软链接:

修改hosts文件

打开hosts文件,在Ubuntu系统下文件位置在:/etc/hosts

代码语言:javascript复制
vim /etc/hosts
# 添加解析
127.0.0.1 bbs.debuginn.cn

检查Nginx配置是否成功

执行nginx -t命令,是否出现successful单词,提示没有语法错误,没有的话就执行重启命令,必须重启哦,不重启配置文件是不会执行的。

代码语言:javascript复制
sudo systemctl restart nginx

查看是否成功

好了 执行到此步,你就应该成功了,看看是否成功了吧!

要是没有配置好了 但是不能访问,可能是你需要777权限,这是一下就可以了:

代码语言:javascript复制
chmod -R 777 /var/www/html/bbs.debuginn.cn

好了,教程到此结束,有问题的话就在评论区问我吧!

本文链接:https://cloud.tencent.com/developer/article/1558240

本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接

0 人点赞