windows下nginx配置https以及同一个端口监听多个网站即监听多个虚拟网站

本文详细介绍了如何在VSCode环境中安装并配置Nginx、openssl,生成SSL证书,以及实现HTTPS反向代理,包括创建私钥、CSR、CRT,以及配置多个虚拟主机的步骤。
摘要由CSDN通过智能技术生成

vscode

工欲善其事必先利其器,安装插件

  • nginx.conf
  • nginx-formatter

在这里插入图片描述

安装nginx

nginx

安装openssl

下载
在这里插入图片描述
然后双击安装即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建环境变量OpenSSL值为C:\Program Files\OpenSSL-Win64
在这里插入图片描述
path环境变量添加%OpenSSL%\bin
在这里插入图片描述
打开cmd输入openssl出现下面的结果说明安装成功
在这里插入图片描述

配置https

在 nginx文件夹下创建ssl文件夹,用于存放证书。
在这里插入图片描述
在创建的ssl文件夹下打开系统窗口
创建私钥,设置一个自己的密码,后面会用到
创建私钥

# 创建私钥:
openssl genrsa -des3 -out 666tp.key 1024
# 输入密码:123456

在这里插入图片描述
在这里插入图片描述
创建csr证书

# 创建csr证书
openssl req -new -key 666tp.key -out 666tp.csr
# 输入密码:123456

接下来一直回车即可,全部默认。
在这里插入图片描述
备份666tp.key

copy 666tp.key 666tp.key.copy

在这里插入图片描述
去除密码

openssl rsa -in 666tp.key.copy -out 666tp.key
# 输入密码:123456

在这里插入图片描述
生成 crt 证书

openssl x509 -req -days 365 -in 666tp.csr -signkey 666tp.key -out 666tp.crt

在这里插入图片描述
证书生成完毕

生成三个网站

在这里插入图片描述
里面有一个index.html内容如下,以此类推

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Web01</title>
</head>
<body>
<div>
    我是web01
</div>
</body>
</html>

新建webconf文件夹,该文件夹下新建三个config文件名为web-序号.conf,监听的端口依次为9000、9001和9002

server {
    listen       9000;
    server_name  localhost;
    root         D:/web01;

    location / {
        index index.html index.htm;
    }
}

在这里插入图片描述

修改nginx.conf

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;

    sendfile on;
    keepalive_timeout 65;

    # 添加的指令 根据自己的系统选择
    include webconf/*.conf; # window版本
    # include ./webconf/*.conf;  # linux版本
}

重启nginx

# windows 版本 命令
nginx.exe -s reload
# linux 版本 命令
sudo systemctl reload nginx

访问查看效果
在这里插入图片描述

配置https代理

新建web-序号-proxy.conf放到webconf

# 反向代理
server {
    listen       443 ssl;
    server_name  web01.wujialiang.com; # 此处需要修改
    # https配置
    ssl_certificate      D:/nginx-1.25.4/ssl/666tp.crt;
    ssl_certificate_key  D:/nginx-1.25.4/ssl/666tp.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    # 反向代理websocket要用
    proxy_http_version 1.1;
    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 Upgrade $http_upgrade;
    proxy_read_timeout 180s;
    proxy_set_header Connection "upgrade";

    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass  http://127.0.0.1:9000;# 此处需要修改
    }
}

# 下面是正常情况下的配置不是反向代理的
# server {
#     listen       443 ssl;
#     server_name  web02.wujialiang.com;

#     ssl_certificate      D:/nginx-1.25.4/ssl/666tp.crt;
#     ssl_certificate_key  D:/nginx-1.25.4/ssl/666tp.key;
#     ssl_session_cache    shared:SSL:1m;
#     ssl_session_timeout  5m;
#     ssl_ciphers  HIGH:!aNULL:!MD5;
#     ssl_prefer_server_ciphers  on;

#     location / {
#         root   html;
#         index  index.html index.htm;
#     }
# }


在这里插入图片描述
重启nginx

修改hosts文件C:\Windows\System32\drivers\etc\hosts
在这里插入图片描述
https反向代理成功
在这里插入图片描述

nginx https证书
配置多个虚拟主机
拆分为多个文件

  • 38
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假装我不帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值