前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx-添加并部署多个二级域名And添加SSL证书

Nginx-添加并部署多个二级域名And添加SSL证书

作者头像
不止于python
发布2023-09-25 21:15:01
1.8K0
发布2023-09-25 21:15:01
举报
文章被收录于专栏:不止于python

本地环境

先说一下本地环境, 比较乱

域名是百度云的 「 mehaei.com

服务器在腾讯云

安装了宝塔运维工具, 主域名下是我的博客网站

实现方案

现在是想部署另外一套服务,并添加上域名访问

1. 主域名下添加不同的端口来实现

2. 主域名下添加不同的子目录实现

3. 通过多个二级域名实现

以上几种方案中, 我会优先使用添加二级域名, 因为不同服务可能差异比较大, 而且随着项目越来越多, 后面会较难管理, 所以这篇写一下就以上这种环境应该怎么添加二级域名以及二级域名添加ssl证书

部署实施

(1)第一步

先将自己的后端服务安装好, 并启动后端服务, 这里我用一个开源项目来举例

项目地址(程序员常用工具箱)

https://github.com/CorentinTh/it-tools

安装

代码语言:javascript
复制
docker run -d --name it-tools --restart unless-stopped -p 9999:80 corentinth/it-tools:latest

设置映射端口号是9999

代码语言:javascript
复制
[root@VM-24-2-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS 
7f9e135babb1 corentinth/it-tools:latest   "/docker-entrypoint.…"   3 weeks ago Up 3 weeks 0.0.0.0:9999->80/tcp, :::9999->80/tcp it-tools

(2) 第二步

腾讯云主机添加解析记录

登录腾讯云控制台 - 到服务器管理中 - 域名 - 添加域名解析 - 进行以下操作

(3)第三步

配置服务器上的nginx

登录宝塔管理界面, 当然也可以直接在服务器命令行操作, 以宝塔页面举例

找到配置修改,在http中 添加以下配置

代码语言:javascript
复制
server
    {
        listen 80;
        server_name tool.mehaei.com;
        index index.html index.htm index.php;
        # 项目地址
        root  /www/server/phpmyadmin;
        location / {
            proxy_pass http://127.0.0.1:9999/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

到这里你就可以通过 http://tool.mehaei.com 访问项目了

额外补充

申请ssl证书

自建博客网站 添加https免费证书

其它步骤都相同, 只是填写申请时绑定域名一定要写到二级域名, 因为免费版的ssl证书不支持*.mehaei.com(泛指定)域名, 审核大概几分钟就通过了

https://cloud.tencent.com/document/product/400/54500?from_cn_redirect=1

修改刚添加的nginx配置, 配置上证书路径

代码语言:javascript
复制
server
    {
        listen 80;
        listen 443 ssl;
        server_name tool.mehaei.com;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;
        # 证书路径
        ssl_certificate    /www/cert/tool/tool.mehaei.com_nginx/tool.mehaei.com_bundle.pem;
        ssl_certificate_key    /www/cert/tool/tool.mehaei.com_nginx/tool.mehaei.com.key;
        location / {
            proxy_pass http://127.0.0.1:9999/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

这样你的项目就支持https请求了, 接下来只需要将http请求强制转为https请求就配置完成了

代码语言:javascript
复制
server
    {
        listen 80;
        listen 443 ssl;
        server_name tool.mehaei.com;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;
        ssl_certificate    /www/cert/tool/tool.mehaei.com_nginx/tool.mehaei.com_bundle.pem;
        ssl_certificate_key    /www/cert/tool/tool.mehaei.com_nginx/tool.mehaei.com.key;
        # 强制http转https
        if ($server_port !~ 443){
            rewrite ^(/.*)$ https://$host$1 permanent;
        }
        location / {
            proxy_pass http://127.0.0.1:9999/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

终于大功告成了, 记录一下, 防止以后自己找不到, 如果再加其它项目的话, 步骤完全一样, 今天就这样, DONE!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-25 07:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止于python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档