前端项目ip做域名映射

news2025/2/25 15:09:41

1、在阿里云、腾讯云购买域名

SSL 证书和私钥生成

阿里云生成证书详解

/path/to/your/ssl_certificate1.crt和/path/to/your/ssl_certificate1.key

生成私钥(key):
使用 OpenSSL 工具生成一个私钥文件。执行以下命令:

openssl genrsa -out your_domain.key 2048

这将生成一个名为 your_domain.key 的私钥文件,长度为 2048 位。记得将 your_domain 替换为你的域名。

生成证书签名请求(CSR):
使用私钥文件生成一个证书签名请求文件(CSR)。执行以下命令:

openssl req -new -key your_domain.key -out your_domain.csr

在执行过程中,会提示你提供一些证书相关的信息,如国家、省份、城市、组织名称等。按照提示填写即可。

获取 SSL 证书:

将生成的 CSR 文件提交给一个 SSL 证书颁发机构(CA)进行签名,以获取 SSL 证书。你可以选择购买证书或者使用免费的证书,如 Let’s Encrypt 等。

安装 SSL 证书:

将从 CA 获取到的 SSL 证书文件和中间证书文件(如果有的话)上传到服务器,并将它们配置到 Nginx 的 SSL 配置中。

通常情况下,你会得到一个 .crt 格式的证书文件和一个 .key 格式的私钥文件。将它们拷贝到服务器上的某个目录,例如 /etc/nginx/ssl/。

2、做http域名映射

把项目访问ip映射到域名上
http://xxxx:6087/ 

http://XXX.admin.cn:6087/ 

3、做https域名映射

即访问XXX.admin.cn域名时,自动根据域名映射到项目

如果你有多个服务,每个服务都需要使用不同的域名来访问,你可以为每个服务配置一个独立的 server 块,并分别监听不同的域名。

例如,假设你有两个服务,一个服务运行在 6087 端口,另一个服务运行在 6088 端口,并且你希望分别使用 service1.example.com 和 service2.example.com 来访问它们,你可以这样配置

nginx新增项目的ssl config配置

server {
    listen 443 ssl;
    server_name service1.example.com;

    ssl_certificate /path/to/your/ssl_certificate1.crt;
    ssl_certificate_key /path/to/your/ssl_certificate1.key;

    location / {
        proxy_pass http://localhost:6087;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 443 ssl;
    server_name service2.example.com;

    ssl_certificate /path/to/your/ssl_certificate2.crt;
    ssl_certificate_key /path/to/your/ssl_certificate2.key;

    location / {
        proxy_pass http://localhost:6088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

在这个配置中定义了两个 server 块,分别用于监听 service1.example.com 和 service2.example.com。每个 server 块都配置了独立的 SSL 证书,并将请求代理到不同的服务端口。这样,你就可以通过不同的域名来访问不同的服务了。

需要注意的是,所有的 server 块都监听了相同的端口(443),但每个 server 块的 server_name 不同,因此 Nginx 可以根据请求的域名来选择匹配的 server 块进行处理。

配置 Nginx 使用 SSL

编辑 Nginx 的配置文件,在相应的 server 块中配置 SSL 证书和私钥的路径。例如:

ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;

然后重新加载或重启 Nginx 使配置生效。

完成以上步骤后,你就拥有了一个 SSL 加密的网站,可以通过 HTTPS 进行访问。

4、项目对应改造

基于之前nginx部署前端的项目的改造

上传从阿里云获取到ssl证书文件

在这里插入图片描述

删除容器

停止并删除容器,把ssl目录也挂在到nginx容器中

docker ps 查询容器

在这里插入图片描述

docker stop 2ed 停止容器
docker rm 2ed 删除容器

在这里插入图片描述

https nginx配置文件

server
{
    listen 443 ssl;
    server_name xx.admin.xxx.com;

    ssl_certificate /etc/nginx/ssl/xx.admin.xxx.com.pem;
    ssl_certificate_key /etc/nginx/ssl/xx.admin.xxx.com.key;
	ssl_protocols TLSv1.2 TLSv1.3;
    location / {
       #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
       #例如,您的网站运行目录在/etc/www下,则填写/etc/www。
       #允许跨域请求的域,* 代表所有
       add_header 'Access-Control-Allow-Origin' *;
       #允许带上cookie请求
       add_header 'Access-Control-Allow-Credentials' 'true';
       #允许请求的方法,比如 GET/POST/PUT/DELETE
       add_header 'Access-Control-Allow-Methods' *;
       #允许请求的header
       add_header 'Access-Control-Allow-Headers' *;

       root /usr/share/nginx/html/dist;
	   try_files $uri $uri/ /index.html;
       index index.html index.htm;
    }
    location /stage-api/ {
         proxy_read_timeout 200s;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:6088/;
    }

}

重新生成容器

新增-v /home/nginx/ssl:/etc/nginx/ssl \ 挂载ssl目录

docker run --net host  --name nginx --restart always  \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/ssl:/etc/nginx/ssl \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0

测试

直接访问域名https://xxx.admin.xxxx.com/ 跳转使用成功

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

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

相关文章

基于python高校选课系统设计与实现flask-django-nodejs-php

随着互联网技术的不断发展,高校选课系统的建设和应用已成为当前高校教育改革的重要方向。选课系统作为高校教务管理的重要组成部分,对于提高教学质量、提高学生的学习效率、优化教学资源配置具有重要的意义。本论文旨在探讨高校选课系统的设计与实现。随…

StringTable(字符串常量池)

目录 String的基本特性 String的内存分配 字符串拼接操作 intern()的使用 String的基本特性 String:字符串,使用一对""引起来表示 String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持…

TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS

本文整理至https://zhuanlan.zhihu.com/p/606575441这里是清华大学软件学院机器学习组官方公众号(THUML-LAB),欢迎关注我们,获取最新资讯! 本文介绍本组ICLR2023时间序列分析方向的最新工作:TimesNet: Temporal 2D-Variation Mode…

Python 实现1~100之间的偶数求和

result0 for i in range(101):if i%20:result result i print(result) 或者 result0 for i in range(2,101,2):result result i print(result)

从零开始学习如何使用 Postman 请求头

当你在使用 Postman 发送请求时,请求头(Headers)是你可以包含在 HTTP 请求中的重要部分之一。请求头包含了关于请求的元数据信息,这些信息对于服务器来处理请求是非常重要的。下面是一份详细的图文介绍,说明了如何在 P…

BUUCTF-Misc10

秘密文件1 1.打开附件 是一个流量包 2.Wireshark 用Wireshark打开 右键追踪tcp追踪流,发现一个以.rar结尾的压缩包 3.foremost 用foremost分离文件 发现有一个rar的文件夹 文件夹内有个加密的压缩包 4.ARCHPR 用ARCHPR工具对压缩包进行解密 5.得到flag [BJDCTF2…

【C语言进阶篇】自定义类型:结构体(上)

目录 1. 结构体类型的声明 ​编辑 1.1 结构体的创建和初始化 1.2 结构体的特殊声明 1.3 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 在我们描述简单对象的时候,使用已有的类型就足够了,比如: 但是当我们…

数据结构从入门到精通——排序的概念及运用

排序的概念及运用 前言一、排序的概念排序稳定性内部排序外部排序 二、排序运用三、常见的排序算法四、排序性能检测代码srand()clock() 五、oj排序测试代码 前言 排序是将数据按照一定规则重新排列的过程,常见规则有升序、降序等。排序算法如冒泡排序、快速排序等…

基于php健身房管理系统flask-django-python

根据现实需要,此系统我们设计出一下功能,主要有以下功能模板。 (1)前台功能:首页、运动器材、教练信息、营业信息、公告栏、在线留言、后台管理、个人中心。 (2)会员功能:首页、个人…

力扣700 二叉搜索树中的搜索 Java版本

文章目录 题目描述代码 题目描述 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 示例 1: 输入:root [4,2,7,…

C++_day6:2024/3/18

作业1:编程题: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在…

一文读懂Partisia区块链的MOCCA 方案:让资产管理可信且可编程

在今年 1 月,Partisia Blockchain 在参加了达沃斯世界经济论坛时,宣布推出一种全新的链上资产管理方案 MOCCA (MPC On-Chain Custody Advanced),即多方计算链上托管高级解决方案。据悉该方案建立在 Partisia Blockchai…

腾讯云服务器多少钱一年?2024报价曝光,请查收

腾讯云服务器多少钱一年?61元一年起。2024年最新腾讯云服务器优惠价格表,腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

海外代理IP在跨境电商中的五大应用场景

在我国跨境电商的发展中,海外代理IP的应用日益广泛,它不仅帮助商家成功打入国际市场,还为他们在多变的全球电商竞争中保持优势。下面是海外代理IP在跨境电商中五个关键的应用场景。 1、精准的市场分析 了解目标市场的消费者行为、产品趋势以…

【必撸】:白嫖Okapi x B²测试网声誉NFT,一鱼双吃保姆级教程

这期教程写起来是真的麻烦,如果有帮助还请用发财的手点个赞,谢谢 简介:BTC L2头号种子选手B Network热度很高就不过多介绍了,这里主要说一下Okapi。Okapi 是Web3链上验证的内容、声誉认证平台,它提供一个值得信赖的平…

Mysql数据库概念与安装

目录 一、数据库概述 1、数据库的基本概念 2、数据库管理系统(DBMS) 2.1 数据库管理系统概念 2.2 数据库管理系统工作模式 3、数据库系统(DBS) 3.1 数据库系统概念 3.2 数据库系统发展史 4、关系型数据库与非关系型数据库…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Ellipse)

椭圆绘制组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ellipse(options?: {width?: string | number, height?: string | number}) 从API version 9开始&#xff0…

ReoGrid电子表格组件

ReoGrid电子表格组件 ReoGrid 是一个基于 .NET 的电子表格组件,供开发人员使用。它允许用户将电子表格功能嵌入到其 .NET 应用程序中。ReoGrid 提供类似于流行的电子表格软件(如 Microsoft Excel)的功能,包括以编程方式创建、编辑…

Linux字符设备与I2C驱动结合使用

引言 在Linux操作系统中,设备驱动程序充当硬件和软件之间的桥梁。字符设备驱动是一种特殊类型的驱动,它允许用户以字节流的形式访问硬件设备。这些设备包括键盘、鼠标、串口等。在本博客中,我们将探讨Linux字符设备驱动的基础知识&#xff0…