ws域名是什么?
ws域名最近使用的比较火爆,是什么因素促使这个太平洋岛国的域名如此火热呢?ws域名是南太平洋岛国“西萨摩亚”国家的简称,而现在却在全球广受欢迎,这要得益于ws这个域名的寓意了,ws不仅表示“西萨摩亚”的简称,也是website的简称,website就是人们常说的环球网。
ws域名有着很强势的优势,不仅是经授权认可的为.com,.net和.org结尾的域名而设的域名注册机构都已采用这项政策。它也已被某些国家代码最高层域采用。ws域名的作用同tv域名一样,在字面上看似是一个行业的专有域名,人们在第一眼见到ws域名的时候,第一个联想到的就是website环球网,而不是一个不知名国家的名字。
ws域名问世之后开始被人们广泛使用和大量抢注,在com域名等国际通用域名资源紧张的时候,人们都很想找一个能替代的域名,而ws的最大特点就是可以全球通用和识别性很强,更适合应用于信息类的企业。
不管是什么商品都是遵循市场的规律,ws域名独特的寓意和无与伦比的优势促使这个域名的价格比普通域名的价格要高很多,而就是这样还是有很多用户愿意花这些钱去注册。
准备
-
已经安装nginx -
假设 Websocket
协议监听的是8282
端口 -
已经申请了证书( pem/crt
文件及key
文件)假设放在了/etc/nginx/conf.d/ssl
下 -
利用nginx开启 443
端口对外提供wss
代理服务 -
Nginx一般作为网站服务器运行着其它服务,为了不影响原来的站点使用,这里使用地址 域名.com/wss
作为wss
的代理入口。也就是客户端连接地址为wss://域名.com/wss
。
配置
WS域名配置
NGINX通过允许在客户端和后端服务器之间建立隧道来支持WebSocket。对于NGINX从客户端向后端服务器发送升级请求,必须显式设置 Upgrade 和 Connection 头,如本例所示:
location /ws/ {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
完成后,NGINX将其作为WebSocket连接处理。
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server 192.168.100.10:8010;
server 192.168.100.11:8010;
server 192.168.100.12:8010;
}
server {
listen 80;
server_name api.tinywan.com;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
}
}
console测试
ws = new WebSocket("ws://api.tinywan.com");
ws.onopen = function() {
alert("连接成功");
ws.send('Tinywan');
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服务端的消息:" + e.data);
};
WSS域名配置
WSS 是 Web Socket Secure 的简称,它是 WebSocket 的加密版本。WebSocket 中的数据是不加密的,但是不加密的数据很容易被别有用心的人窃取, 因此为了保护数据安全,将 WebSocket 与 SSL 结合,实现了安全的 WebSocket 通信,即 WebSocket Secure。
WebSocket协议定义了WebSocket(
WS://
)以及WebSocket安全(WSS://
)两种前缀,WebSocket使用HTTP握手然后升级为WebSocket协议进行通信,WebSocket安全(WSS)使用HTTPS握手然后升级为安全的WebSocket协议,WSS
其实就是WS+TLS
。所以只需要在websocket协议的基础上开启SSL即可支持wss协议。
server {
listen 443;
server_name api.tinywan.com;
ssl on;
ssl_certificate /etc/ssl/server.pem;
ssl_certificate_key /etc/ssl/server.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;
location /wss
{
proxy_pass http://127.0.0.1:8282;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
# location / {} 站点的其它配置...
}
console测试
ws = new WebSocket("wss://api.tinywan.com/wss");
ws.onopen = function() {
alert("连接成功");
ws.send('Tinywan');
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服务端的消息:" + e.data);
};
原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/77597.html