Nginx去配置socket的时候,发现nginx没有配置ws/wss协议,配置步骤如下
配置之前需要知道ws协议和wss协议的区别
一、WS 和 WSS 的区别
WebSocket 协议是 html5 的一种通信协议,可以使客户端和服务端双向数据传输更加简单快捷,并且在 TCP 连接进行一次握手后,就可以持久性连接,同时允许服务端对客户端推送数据。
WS 协议和 WSS 协议均是 WebSocket 协议的 SCHEM。也是统⼀的资源标志符。WS是非安全的,没有证书;WSS是安全的,需要SSL证书。
WS 一般默认是 80 端口,而 WSS 默认是 443 端口,大多数网站用的就是 80 和 433 端口。
http 协议下使用 WS,在 https 协议下使用 WSS。
WebSocket协议的特点:
建立在 TCP 协议之上,服务端实现容易;
与 HTTP 协议有良好的兼容性,握手时不容易被屏蔽,可以通过各种 HTTP 代理服务器;
数据轻量,实时通讯;
可以发送文本和二进制数据;
不限制同源,客户端可以与任意服务器端进行通讯。
二、Nginx 下配置 WS
WS 配置
server {listen 8001;location / {proxy_pass http://192.168.188.126:9007;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
}
但是在测试的话会有单独的路径,刚开始我的配置是这个样子:
location /ws/ {proxy_pass http://127.0.0.1:9007;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
访问socket的时候的路径为:
前端连接的时候:
但是一直报错:
我在想,访问/ws的时候将请求代理到127.0.0.1:9007
,那 /ws/webSocket就应该转发到127.0.0.1:9007/ws/webSocket
突然发现,多了个前缀有木有,我在服务器路径为:/webSocket
修改:
第二天在帖子上看到一句话:
rewrite ^/api/(.*)$ /$1 break;
这句话的含义就是:
rewrite “^/api/(.)$” /$1 break,路径重写:
“^/api/(.)$”:匹配路径的正则表达式,用了分组语法,把/api/以后的所有部分当做1组
/$1:重写的目标路径,这里用$1引用前面正则表达式匹配到的分组(组编号从1开始),即/api/后面的所有。这样新的路径就是除去/api/以外的所有,就达到了去除/api前缀的目的
break:指令,常用的有2个,分别是:last、break
last:重写路径结束后,将得到的路径重新进行一次路径匹配
break:重写路径结束后,不再重新匹配路径。
= : 用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
~ : 用于表示 uri 包含正则表达式,并且区分大小写。
~* : 用于表示 uri 包含正则表达式,并且不区分大小写。
^~ : 用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
配置这句话就可以去掉路径:
location /ws/ {rewrite ^/ws/(.*)$ /$1 break;proxy_pass http://1.116.37.17:9007;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
服务区只使用/webSocket就可以了
三、Nginx 下配置 WSS
WSS 配置
server {listen 443 ssl;server_name im-wss-api.xxx.xxx;ssl_certificate ../cert/server.crt;ssl_certificate_key ../cert/server.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {proxy_pass http://localhost:8088;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
}
我使用的是ws协议,配置完成之后:
连接成功!
Nginx去配置socket的时候,发现nginx没有配置ws/wss协议,配置步骤如下相关推荐
- nginx实现对websocket加密协议wss协议的反向代理以及websocket整合springboot入门(踩坑)
出发点 最近公司需要有一个推送前端消息的需求 首选websocket进行推送,也做过客服系统接触过,最近看了一点websocket的相关内容记录总结一下. 什么是websocket websocket ...
- 使用nginx解决一台服务器中ws协议与wss协议共存问题 2017-07-09 13:29:06
https://www.worldflying.cn/article-id-13.html https://tieba.baidu.com/p/5213484390?red_tag=000961462 ...
- 宝塔Nginx搭建多个WSS协议
websocket配置wss协议,步骤如下: 一.宝塔点击:网站->设置->配置文档,在配置文件中 server上部添加以下代码 map $http_upgrade $connection ...
- 实验二 帧中继协议配置
计算机网络实验 实验二 帧中继协议配置 一.实验目的 二.实验内容 三.实验条件 四.实验步骤 4.1 连接帧中继交换网 4.2 创建DLCI 4.3 创建串行接口间的虚电路映射关系 4.4 配置路由 ...
- Linux 安装配置JDK 、 MySQL 、nginx
今天我来讲一下在Linux下各环境的搭建,主要就讲一下jdk.MySQL.和一个代理服务器nginx 1. jdk的安装配置 1)卸载自带openjdk 当我们拿到一个全新的ECS的时候上面有的会自带 ...
- Nginx https 协议配置 ssl_protocols 的相关问题
1. Nginx https相关配置 官方说明:详细看这里 本文主要针对以下两个主要配置从代码层次进行分析: 协议配置: Syntax: ssl_protocols [SSLv2] [SSLv3] [ ...
- nginx配置wss协议
需求:nginx配置websocket协议连接,(背景,在一个使用一个免费的仅仅支持单域名的证书时,既要支持https协议,也要支持wss协议时,我们可以配置一个nginx根据不同的路径去跳转) 我所 ...
- 手把手教你配置:Jenkins+Github+Webhook +Nginx自动化打包部署Vue项目
前面的话 为了前端项目的工程化,减少项目发布环境的部署,实现自动化打包部署. 传统的做法,在服务器初始一个 git 仓库,然后每次代码更新后,手动去拉取,次数多了也就烦了,而自动化打包部署每次只需在项 ...
- 基于docker部署前后端分离项目--->docker+Dockerfile+vue+nginx+uwsgi+django+socket+负载均衡
1. 介绍 本文基于阿里云服务器,安装的ubuntu20.04系统 适用于conten7.5系列 适用于ubuntu16.04以上系列 vue已经打包完成,所以不能使用我的vue项目 2. 部署 部署 ...
最新文章
- win10系统搭建Tensorflow深度学习平台详细步骤
- rhel配置磁盘分区_rhel配置磁盘分区_centos系统三套硬盘分区方案[图文设置版]
- 初识Hibernate 缓存
- JQuery 判断滚动条是否到底部
- apache camel_Apache Camel简介
- java Switch里面的类型问题
- 在英特尔® 架构平台上开发和优化基于 NDK 的 Android 游戏应用
- AC日记——单词替换 1.7 21
- 灭屏取消过温减流功能
- 莫烦PYTHON | Tensorflow教程——Tensorflow简介(第一章)
- 人工神经网络图像识别,人脸识别神经网络模型
- 10分钟看明白大M法和两阶段法
- 专利与论文-5:《专利说明书》的撰写与注意事项
- 南京大学2021计算机考研复试线是多少,快讯!南京大学2021年考研复试线公布,金融专硕425分!...
- c语言求圆锥的表面积和体积_c语言问题,输入圆锥的半径和高,得出表面积和体积。请问程序该如何改....
- 怎么查询计算机二级证书快递号,计算机二级office查询成绩后的注意事项证书直邮申请17到到23号...
- JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...
- 计算机新建里没有word,电脑新建中没有word和excel怎么回事
- 绘声绘影X4 个人MV制作
- 泛读论文:Person-reID 行人重识别合集
热门文章
- php ppt转视频教程,如何制作ppt转换视频新手教程操作指南
- Java的Io模型你了解多少?北大青鸟java培训课程
- 哈理工计算机学院学生会技术部,某大学学生会网络技术部规章制度(网友投稿)...
- itext7 给PDF增加表单域并设置值
- React之生命周期-forceUpdate
- java parcelable转json字符串,json 字符串转parcelable
- python下调用淘宝top接口例子
- 计算机毕业设计SSM道路桥梁工程知识文库系统【附源码数据库】
- GDUT - 专题学习1 A - Red and Black
- ppt模板如何制作出科技感?