【socket.io】nginx配置https+wss

本文档介绍了如何在SpringBoot+Vue的项目架构中配置SSL证书以实现HTTPS,并通过Nginx代理支持HTTP、HTTPS、WS和WSS。主要步骤包括:获取SSL证书,配置Nginx服务器,将HTTP请求代理到HTTP服务,同时将WS升级为WSS以满足小程序的SSL需求。
摘要由CSDN通过智能技术生成

背景

项目架构:springboot+vue,前后端分离
代码需要连接小程序,小程序需要ssl证书认证,相应的协议需要:http->https,ws->wss

需要准备

域名 证书(与域名绑定)nginx

https

仅支持https,不支持wss,实现比较简单

https://blog.csdn.net/kk_star/article/details/83273045?ops_request_misc=&request_id=&biz_id=102&utm_term=springboot%20https&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-83273045.nonecase&spm=1018.2226.3001.4187

https+wss

针对部分服务需要https,部分需要http,以下配置支持http、https、ws、wss
wss.conf

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

# https通过下面的反向代理到上面的接口去 https ok wss undo 域名 _未配置
server {
    listen 443 ssl;
    #此处配置域名
	server_name _;
    #ssl on;
    ssl_certificate ../ssl/grg.crt;#你的上传到服务器的证书位置
    ssl_certificate_key ../ssl/grg.key;#你的上传到服务器的证书位置
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    underscores_in_headers on;#开启自定义头信息的下划线
	#https协议转发 小程序里面要访问的链接
    location /{
    proxy_pass http://127.0.0.1:9999;#代理到原有的http的地址去
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    add_header Access-Control-Allow-Origin *;#跨域访问设置
    }
    #wss协议转发 小程序里面要访问的链接 写具体ip
    location /socket.io {
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://127.0.0.1:9843;
    }
}
#http测试配置ok
	server {
        listen 80;
        server_name _;

        location / {
            proxy_pass http://127.0.0.1:9999;
        }

        location /socket.io {
            proxy_http_version 1.1;
            proxy_buffering off;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
			#ws用不了localhost 写具体ip
            proxy_pass http://127.0.0.1:9843;
        }
    }

在nginx.conf中配置读取wss.conf
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现nginx配置node socket.io vue的负载均衡,需要先安装nginx和node.js以及socket.io。 以下是简单的步骤: 1. 安装nginx 使用以下命令安装nginx: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 配置nginx 在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 socketio.conf,将以下内容粘贴到文件中: ``` upstream socketio_backend { ip_hash; server node1:3000; server node2:3000; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://socketio_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 这个配置文件设置了一个名为 socketio_backend 的负载均衡器,它将请求转发到两个不同的Node.js服务器,分别是 node1 和 node2,它们都运行在3000端口上。 3. 安装Node.js和socket.io 在 node1 和 node2 服务器上安装 Node.js 和 socket.io,使用以下命令: ``` sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm sudo npm install socket.io ``` 4. 在Node.js中使用socket.io 在 Node.js 应用程序中使用以下代码启动 socket.io: ``` var io = require('socket.io')(3000); io.on('connection', function (socket) { console.log('a user connected'); }); ``` 这段代码启动了一个 socket.io 实例,并监听在3000端口上,当有一个新的客户端连接时,会在控制台输出“a user connected”。 在Vue.js中使用socket.io 在Vue.js应用程序中使用以下代码连接到socket.io: ``` import io from 'socket.io-client'; const socket = io('http://yourdomain.com'); ``` 这段代码连接到运行在yourdomain.com的socket.io服务器。 至此,你就可以在Vue.js应用程序中使用socket.io了,并且通过nginx实现了负载均衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值