需求:nginx配置websocket协议连接,(背景,在一个使用一个免费的仅仅支持单域名的证书时,既要支持https协议,也要支持wss协议时,我们可以配置一个nginx根据不同的路径去跳转

我所使用的是华为云的免费领取的一年的证书(因为仅仅支持单域名所以才要根据域名后的路径做不同的跳转)

项目的接口在内部为127.0.0.1:8888/request/play
也就是本地通过 ws://localhost:28888 进行socket连接,当然因为使用域名wss,所以此处需要放到服务器 ws://你的服务器ip:8888/request/play (这样访问的前提是将8888加入开放端口)

在有证书的前提下上传证书到服务器

  1. 首先设置二级域名解析




    注意注册证书时,一定要和解析的子域名相对应可参照(https://baijiahao.baidu.com/s?id=1726107421566695475&wfr=spider&for=pc)

#user  nobody;
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 {client_max_body_size 200m;# 配置上传文件大小最大为200minclude       mime.types;default_type  application/octet-stream;sendfile        on;server {# 监听443端口(https 和wss都是使用的默认端口443)listen 443 ssl;# 你的域名(就是你解析后的域名与证书申请时域名保持一致)server_name  game-test2.pro-lwwl2.com;#ssl 证书的pem文件路径# ssl证书的pem文件路径ssl_certificate  /usr/local/nginx/ssl/scsgame.crt;# ssl证书的key文件路径ssl_certificate_key /usr/local/nginx/ssl/scsserver.key;ssl_session_timeout 5m;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;################################## 此处是我配置的vue上传部署到服务器时,解决首页加载缓慢问题而设置的可以参考# https://www.cnblogs.com/libaiyun/p/16462470.html#开启gzipgzip on;# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩gzip_min_length 1k;# 设置压缩所需要的缓冲区大小gzip_buffers 16 64k;# 设置gzip压缩针对的HTTP协议版本gzip_http_version 1.1;#  gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间gzip_comp_level 9;gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml application/x-httpd-php image/jpeg image/gif image/png;# 是否在http header中添加Vary: Accept-Encoding,建议开启gzip_vary on;# 禁用IE6 gzipgzip_disable "MSIE [1-6]\.";
#######################################
# 日志输出路径access_log  /home/server/vue_admin/logs/access.log;# 当且仅当https请求访问到admin时
# 访问https://game-XXXX2.pro-lwwl2.com/admin就会跳转到服务器的/home/server/vue_admin/dist下,取index.html来到vue项目的首页location /admin{alias  /home/server/vue_admin/dist;index  index.html index.htm;}# 配置wss长连接通信协议 #当请求wss://game-XXXX2.pro-lwwl2.com/game/request时候,就会发生路径的跳转到本地的http://127.0.0.1:8888/game/request;去通过内网来匹配请求location /game/request {proxy_pass http://127.0.0.1:8888/game/request;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;proxy_set_header X-NginX-Proxy true;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_connect_timeout 600s;proxy_read_timeout 600;proxy_send_timeout 600s;}
# nginx配置文件下载路径,实现nginx下载功能
#仅仅需要访问https://game-XXXX2.pro-#lwwl2.com/resource/download/即可完成下载
location /resource/download {alias  /home/server/resource/client;sendfile on;autoindex on;  # 开启目录文件列表autoindex_exact_size on;  # 显示出文件的确切大小,单位是bytesautoindex_localtime on;  # 显示的文件时间为文件的服务器时间charset utf-8,gbk;  # 避免中文乱码
}
# 访问https://game-XXXX2.pro-#lwwl2.com/admin-api
# 接口就会完成跳转到本地的http://127.0.0.1:9021/端口以及路径
location ^~ /admin-api/ {#匹配所有路径以/gameTool开头的请求
access_log  /home/server/vue_admin/logs/access.log;
proxy_set_header Host game-test.pro-lwwl.com; #设置请求域名
proxy_pass http://127.0.0.1:9021/; #配置内网请求
}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
**一个nginx可以配置多个server 但是如果新增或者删除server一定得停止nginx 而不是重启nginx否则配置不生效**# server {#    listen       9021;#     server_name  lwwl.com;#将请求转成https#把http的域名请求转成https# return 301 https://$host$request_url; #      rewrite ^(.*:*) https://$server_name$1 permanent # }
}

以上还需注意的是我们应该区分一下配置location时,我们应该看清root alias 和proxy_pass 三者带来路径拼写的差异,否则就会报404异常

nginx配置wss协议相关推荐

  1. Netty通过Nginx配置 wss 协议访问(实践可行)

    先写个比较简单的,后面再写一篇Vue + springboot +netty Netty在互联网以及物联网公司用的很多,底层走的还是 websocket协议,好处很多,就不一一列了,相关的文章很多,大 ...

  2. 宝塔nginx配置wss协议

    如下图所示 location /wss{proxy_pass http://127.0.0.1:12590;proxy_http_version 1.1;proxy_set_header Upgrad ...

  3. 自动获取/更新HTTPS证书并实现Nginx代理WSS协议

    自动获取/更新HTTPS证书以及实现Nginx代理WSS协议 如果说我比别人看得更远些,那是因为我站在了巨人的肩上-–牛顿 有了轮子就会事半功倍,此篇文章就是站在巨人的肩膀上做一个简单的总结. 自动获 ...

  4. activemq配置wss协议

    wss是加密协议,必须配置https证书 <sslContext><sslContext keyStore="file:/etc/letsencrypt/live/dudu ...

  5. 微信小程序配置WSS协议

    配置的是nginx转发,前提是你已经安装了nginx的软件并已经正常打开网页,安装好SSL协议,能打开https网页 下面是配置: 需要的话可以根据需求修改 server { listen 80; s ...

  6. Nginx配置wss访问实现微信小程序的websocket通信

    WSS是Web Socket Secure的简称, 它是WebSocket的加密版本.WSS与WS类似于HTTPS和HTTP,不同之处在于是不同的通信协议,都运行在SSL(Secure Socket ...

  7. nginx配置wss

    如果websocket服务需要通过wss协议传输,一种方式是在websocket服务器进行开发,内置证书.还有一种比较简单的方式是配置在负载均衡服务器上,例如nginx. 1. 生成证书 商业证书可以 ...

  8. nginx配置robots协议

    robots协议 robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索 ...

  9. Nginx配置https协议 超详细!!!

    本文章基于Linux操作系统演示. 准备工作:有公网IP的服务器(CentOS7).申请一个域名.为域名申请SSL证书.将服务器的公网IP和域名进行绑定. 一.下载安装Nginx Nginx下载网址: ...

最新文章

  1. 产品汪们匿名自爆工资,看完心里好难受......
  2. Windows Server 笔记之网络负载平衡(NLB)和服务质量(QoS)简介
  3. 文字打印机 效果实现
  4. POJ 2653 Pick-up sticks 判断线段相交
  5. 易筋SpringBoot 2.1 | 第三十五篇:实战Aparche Maven 的核心概念与理论 Maven仓库管理 从入门到精通
  6. 中国物联网激荡20年
  7. 堪培拉地理位置经纬度_澳大利亚的经纬度气候地形
  8. Veeam BR 11 Windows Agent备份
  9. 互联网晚报 | 06月08日 星期三 | ​教育部回应高考试题疑泄露;​上海落户新规;字节跳动考虑出售得物少数股份...
  10. Win10强制更新关闭方法
  11. [英语阅读]意环保者塑“老贝”冰雕督促环保
  12. b460m迫击炮黑苹果_黑苹果系列2 - 我的黑苹果配置
  13. Springboot错误页面和错误信息定制
  14. 【银河麒麟V10U盘只读解决方案】
  15. STC51单片机串口波特率设置之BRT设置
  16. SK Innovation全球锂电战略布局揭秘
  17. 局域网与城域网 - 以太网标准(百兆 100Base、千兆 1000Base、万兆 10GBase)
  18. NVDIA Jetson TX2软件介绍
  19. Windows10下利用DOSBOX和MASM32搭建汇编语言环境
  20. 北京公户京牌指标相关问题详解

热门文章

  1. oracle对日期字符串动态分区,oracle 11g分区表新特性---interval分区 的坑
  2. 使用visio建立数据库模型(手动和逆向自动)
  3. 基于java-swing打猎射击游戏
  4. 如何实现Oracle中的分页查询
  5. OnLine非游戏最终形态
  6. 承包经营与阿米巴经营的区别
  7. 配线架的连接方式有哪几种?
  8. 2-3-RHEL6.3搭建NTP 服务器案例分析与总结(RedHat Enterprise Linux Server6.3)@树袋飘零...
  9. php 正则匹配html中所有图片链接
  10. 3dmax2016新增加的panorama explorer的使用