前端项目ip做域名映射

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/ 跳转使用成功

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值