nginx如何使用多个域名在一个服务器上指向多个服务

news2025/2/26 11:38:09

        最近整了一个域名,想着就先把域名给放在自己的测试服务器上玩玩,但是自己又有多个服务,就打算搞几个二级域名来用,现在出一篇文章,把我的经验分享给大家吧,大致的内容是;如何生成二级域名,如何生成ssl测试证书,如何设置nginx,如何将证书绑定域名,nginx如何重定向等等。本次以华为云服务器为例。(保姆级!!!)

        做这些事情的前提条件是,你所购买的域名必须的提交审核,而且必须得是管局审核通过后才能进行后续的操作!!

 1,使用一级域名解析我们的公网ip

                当我们的域名通过管局审核后,我们需要将我们的一级域名解析我们的公网ip。

                在华为云顶部搜索框里搜索“域名”,在出现的内容里选中我们的“云解析服务dns”,下图所示

        在出现的页面里,在底部找到我们的域名,域名右侧点击 “解析”,进入到下一个页面,如下图所示

        进入到页面后,点击“快速添加解析”,会弹出一个对话框,我们在对话框里里的 “值”输入框输入我们服务器的公网ip即可,如下图所示

        当把这些事情做完后,我们就可以在访问我们域名,从而自动的解析访问我们的ip啦,这里如果没有在nginx上设置的话,默认是访问公网ip80端口的内容。

2,申请二级域名

        我们还是在我们添加解析的页面上添加二级域名,在页面的左侧,点击添加“添加记录集”,

在弹出的弹窗里输入我们的二级域名的内容,如下图所示,只填红框内容即可,其他的不用管。

        点击确定,我们就设置上好了二级域名了、

3.申请ssl测试证书

        首先,我们要明白为什么我们的网站要这个ssl证书,如果网站没有这个证书,我们的网站就不能使用https协议来访问,就会被浏览器标记成不安全的网站,如果是微信浏览器访问的话,还有可能被微信封禁的风险,所以,为了长久考虑,得添加上ssl安全证书。

        在华为云里提供了免费的安全证书,我们在华为云官网的最外层搜索ssl,选择“云证书管理服务”,如下图所示

         跳转到新页面后,点击“测试证书”,如下图所示。

                在页面点击“创建测试证书”,选中我们需要的证书即可,如下图所示

         点击确定后会在证书列表页多出一条空白证书。我们点击空白证书右侧的"申请证书"。如下图所示。

        

        在弹出的对话框里输入我们的信息。这里要注意下,对话框里的“绑定域名”的输入框填写规则是这样的,假设我一级域名是 admin.com,那我我要给这个一级域名申请证书,我在绑定域名里要输入的就是,www.admin.com,如果我还有一个二级域名是,test.admin.com,那么我在里面输入的就是,test.admin.com,不要在二级域名前面加www。信息输入完成后点击提交申请。如下图所示

        

        提交完成后,在证书列表里会多出一条待验证的ssl证书,我们点击"域名验证"

                 在弹出的对话框架记录会出现一些文本内容,我们要做的就是复制文本内容,然后再次回到我们添加解析的页面。将文本内容填写到解析里面,如下图所示

                文本内容:

                回到域名解析的页面,点击 “添加记录级”,在弹出的内容里依次输入我们在ssl验证页面的内容,如下图所示。点击保存即可,注意,如果是给一级域名申请ssl的话就不需要在解析里面在次验证了。

         再次回到ssl验证页面,点击"域名验证",在弹出的对话框里点击"验证"即可,如果解析的内容填写无误的话会提示验证成功,系统会自动签发证书。然后我们点击下载,将证书下载下来即可。

        

        下载完是一个zip包,我们进入到zip包找到nginx的那个文件夹,进入。如下图,

         拿到文件夹中的2个文件,将他放到服务器上的某个文件夹里,我这里通过xftp来进行文件的放入

        服务器:

        

         准备工作已经做好,剩下的就是nginx上设置了

4.nginx绑定ssl,服务代理。

        当做到这一步后就是在nginx上设置,这里我会将我的设置贴出来,并打上注释,多的我也就不多说了。

        


user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

#server {  当希望某个域名返回404时可以直接return一个404 这个当访问这个地址时会返回404
 #   listen 80;
  #  server_name www.xxx.top;
   # return 404;
#}
server {
    server_name shuaige.xxx.top; #同下,注意,这里的域名前面不用加www。 这个是二级域名的重定向到https
    return 301 https://shuaige.xxx.top$request_uri;
}
server {  #做域名转发,当访问的是xxx.top时,自动重定向的加上https ,这个是一级域名的重定向到https
    server_name xxx.top;  #要监控的域名
    return 301 https://www.xxx.top$request_uri;
}

server { #配置监听前端服务
    listen 82; #端口不可重复
    server_name 127.0.0.1; #监听本机

    root /project/chanping/dist; #指向的内容,也就是我们vue打出的dist包所在的位置
    index index.html index.htm;

    location / {
        try_files $uri $uri/ @router;
    }

    location @router {
        rewrite ^.*$ /index.html last;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }
}
server {
    listen 83; #同上
    server_name 127.0.0.1;

    root /project/admin/dist;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ @router;
    }

    location @router {
        rewrite ^.*$ /index.html last;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }
}



server {
    listen 443 ssl; #设置ssl证书绑定域名,这里是443端口,不可以修改
    server_name shuaige.xxx.top; #这里是我们要添加上我们要绑定的域名,注意域名和证书必须得同步。,注意二级域名这里在前面不需要加上www.

    ssl_certificate /usr/local/nginx/ssl2/scs1705043006543_shuaige.xxx.top_server.crt; #这里输入的是证书的crt
    ssl_certificate_key /usr/local/nginx/ssl2/scs1705043006543_shuaige.xxx.top_server.key; #这里输入的是key

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:82; #这里是当访问这个域名后,代理转发到本机的82端口,也就是我们上方设置的内容
    }
}

server {
    listen 443 ssl;  #同上
    server_name www.xxx.top;

    ssl_certificate /usr/local/nginx/ssl/scs1695202495878_www.xxx.top_server.crt;
    ssl_certificate_key /usr/local/nginx/ssl/scs1695202495878_www.xxx.top_server.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:83; #这里稍微重要一点,当访问这个地址时,这个地址代理这个本地服务的83端口的内容
    }
}
}  




拜拜!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1477348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vivado Vitis 2023.2 环境配置 Git TCL工程管理 MicroBlaze和HLS点灯测试

文章目录 本篇概要Vivado Vitis 环境搭建Vivado 免费标准版 vs 企业版Vivado Windows 安装Vivado 安装更新 Vivado 工程操作GUI 创建工程打开已有工程从已有工程创建, 重命名工程GUI导出TCL, TCL复原工程TCL命令 Vivado 版本控制BlinkTcl脚本新建导出重建工程纯Verilog BlinkTc…

Linux alias命令(为复杂命令创建别名,其中命令可带选项或参数)

文章目录 Mastering the Linux alias Command(精通Linux的alias命令)1. Understanding the alias Command(理解alias命令)示例Ubuntu20.04 arm操作系统OpenEuler20.03 arm操作系统 2. Basic Usage of alias(alias的基本…

k8s初始化报错 [ERROR CRI]: container runtime is not running: ......

一、环境参数 linux系统为centos7kubernetes版本为v1.28.2containerd版本为1.6.28 二、报错内容 执行初始化命令kubeadm init命令时报错,内容如下 error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR CRI]: container runtime is…

Excel数据表定制分组排序

实例需求:某学校体育活动统计表如下图左侧表格所示,数据按照班级排列,现在需要根据如下规格对表格进行排序 “幼儿”班级排列在表格最后按照“次数”降序排列“幼儿”班级同样按“次数”降序排列 排序结果如下图中右侧表格所示。 示例代码…

什么是蓝牙资产标签?

在当今的物联网时代,蓝牙资产标签作为一种无线通信技术,被广泛应用于各种资产跟踪和管理场景。那么,究竟什么是蓝牙资产标签呢? 蓝牙资产标签,顾名思义,是一种基于蓝牙技术实现的资产追踪设备。它通过与手…

羊大师:羊奶的多元价值,从餐桌到保健,一奶多用

羊大师:羊奶的多元价值,从餐桌到保健,一奶多用 羊奶的多元价值体现在多个方面,从餐桌到保健,都有着独特的作用。 在餐桌上,羊奶可以作为各种美食的原料,如羊奶冰淇淋、羊奶饼干、羊奶布丁等&a…

Element ui plus 中 table scroll 自动触底

Element ui plus 中 table scroll 自动触底 场景:添加客户等级的时候,新增的客户等级 input 框 被 scroll 遮挡、重叠,需要保证 scroll 保持在 最底部接可以解决 遮挡、重叠。 el-table 在设置了 height 后,会选择将 table 表头固…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…

使用vue把一周的时间划分为可以选择多个阶段

提示&#xff1a;使用vue把一周的时间划分为可以选择多个阶段段&#xff08;亲测有效&#xff09; 一、直接复制以下代码 代码如下&#xff08;示例&#xff09;&#xff1a; <template><div class"byted-weektime" mousedown"dian" mousemove&qu…

Object类详解

Object类详解 equals方法 和 equals的对比 hashcode 方法toString方法finalize 方法 &#xff08;新版被弃用&#xff09; equals方法 和 equals的对比 是一个比较运算符&#xff1a;   1&#xff09; &#xff1a;既可以判断基本类型&#xff0c;又可以判断引用类型&#x…

web自动化笔记一:元素定位的八种方式

一、元素定位 优先使用id定位&#xff0c;超链接使用link和paryial_link 二、自动化测试流程&#xff08;先定位后操作&#xff09; 1、自动化测试方案->2、自动化脚本编写&#xff08;定位元素、操作元素、验证操作、记录测试结果&#xff09;->3、执行测试用例->4、…

MATLAB环境下基于人工蜂群优化算法的卷积神经网络CNN图像识别

地球上的所有生物包括人类都在不断演变、进化&#xff0c;在这样的过程中逐渐适应了外界的环境&#xff0c;找到了适合自己的生存方式。不同的生物有不同的生存机制&#xff0c;群体活动作为一种常见的生存机制广泛存在于自然界中&#xff0c;例如蚂蚁、鸟群、鱼群、峰群甚至人…

手机和windows的便签怎么共享账号使用

在忙碌的生活中&#xff0c;我经常需要在手机和电脑之间同步记事信息。可是&#xff0c;每次当我在手机上记下一些重要事项后&#xff0c;想要在电脑上查看或继续编辑时&#xff0c;总是遇到各种麻烦。因为手机和电脑上的便签软件各不相同&#xff0c;无法实现账号共享和内容同…

系统性学习vue-vue3

系统性学习vue-vue3 Vue3简介创建Vue3.0工程使用vue-cli创建使用vite创建工程 分析工程结构&#xff08;cli创建的&#xff09;main.jsApp.vue 安装开发者工具初识setupref函数处理基本类型处理对象类型 reactive函数回顾Vue2的响应式原理vue3响应式原理—Proxyreactive对比ref…

C++面试宝典第33题:数组组成最大数

题目 给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例1: 输入:nums = [10, 2] 输出:"210" 示例2: 输入:nums = [3, 30, 34, 5, 9] 输出:"…

开发一款跨境电商APP的流程是什么

开发一款跨境电商系统的流程大致如下&#xff1a; 1.需求分析&#xff1a;这是开发任何软件系统的第一步。在这个阶段&#xff0c;你需要与客户进行深入沟通&#xff0c;了解他们的业务模式、目标用户、产品特点以及竞争对手等信息。通过这一步骤&#xff0c;你可以确定系统的…

报`Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.`错误解决办法

使用了promise,但是在使用的过程中报Uncaught (in promise)错误&#xff0c;第一次遇到这种错误&#xff0c;所以在此记录下&#xff0c;方便以后解决问题 Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.错误通常出现在使用fetch API发起…

pytorch 图像数据集管理

目录 1.数据集的管理说明 2.数据集Dataset类说明 3.图像分类常用的类 ImageFolder 1.数据集的管理说明 pytorch使用Dataset来管理训练和测试数据集&#xff0c;前文说过 torchvision.datasets.MNIST 这些 torchvision.datasets里面的数据集都是继承Dataset而来&#xff0c…

【QT+QGIS跨平台编译】之五十六:【QGIS_CORE跨平台编译】—【qgsmeshcalclexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

【Python笔记-设计模式】状态模式

一、说明 状态模式是一种行为设计模式&#xff0c;用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时&#xff0c;规避使用大量的条件语句来判断对象的状态&#xff0c;提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…