nginx配置支持https和wss(websocket)协议

server {
        listen 80;
        listen 443 ssl http2;
        server_name lyz810.com;

        root /website/lyz810-main;

        ssl_certificate     certificate/lyz810.com.crt;
        ssl_certificate_key certificate/lyz810.com.key;

        location /websocket/ {
                internal;

                if ( $http_sec_websocket_protocol = "" ) {
                        return 400;
                }
                proxy_pass http://127.0.0.1:$arg_port;
                proxy_http_version 1.1;
                proxy_set_header X-Client-IP $remote_addr;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 300s;
        }
        location /chatRoom {
                rewrite .* /websocket/?port=8100;
        }
        location /chatRobot {
                rewrite .* /websocket/?port=8101;
        }
}

服务器内部起了2个websocket服务,分别监听8100、8101端口nginx根据访问不同的location,选择代理到那个ws服务商

/websocket/是个内部location,直接访问会报错

参考链接:

http://www.cnblogs.com/weidiao/p/7389744.html

http://www.cnblogs.com/mzsg/p/5623494.html

时间: 2024-08-16 14:08:19

nginx配置支持https和wss(websocket)协议的相关文章

为微信小程序开发做准备,在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https证书

原文链接: http://phpecshop.blog.51cto.com/6296699/1891737 最近在做微信小程序商城开发的时候,阅读官方api文档发现要求https,的路程. wx.request(OBJECT) wx.request发起的是 HTTPS 请求. 于是开始了在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https(Let's Encrypt SSL证书) 1.下载letsencrypt.sh # wget https://raw.

nginx配置支持nagios

配置前提:安装了nginx和php.并且php也安装了gd支持 现在需要做的是让nagios在LNMP环境下也能运行 1.首先须需要安装依赖包 1.1.安装perl Shell> yum install perl 1.2.安装perl fcgi模块 Shell> wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.74.tar.gz Shell> perl Makefile.PL Shell> make &am

nginx使用ssl模块配置支持HTTPS访问

默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过https://www.localhost.cn进行访问. 10.10.100.8 www.localhost.cn 实验步骤: 1.首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 2.创建服务

Nginx从搭建到配置支持HTTPS

安装 基础包 ububtu apt-get install build-essential apt-get install libtool centos yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++ 进入安装目录 cd /usr/local/src 安装 PCRE 支持正则表达 使 Nginx 支持 Rewrite 功能 wget ftp://ftp.csx.cam.ac.uk/pub/soft

Ubuntu + Nginx 配置全站https访问

最近跟室友要一起搞一个个人公众号,提前想把生态想清楚了,所以准备部署一个网站 正好公司有Microsoft Visual Studio Professional订阅,每个月有50刀免费额度,对于Azure来说50刀也不算什么,不过支撑一个个人网站还是可以的,毕竟当前还没有多少用户,等用户数量庞大以后也就不愁server的问题了hiahia 好了跑偏了. 网站暂定先用WordPress,自己开发能力不强,加上现在WordPress的SEO好像不是很差,综合考虑就是这样. 谁知一看WP文档发现现在要

nginx配置访问https[自签版]

通过openssl生成证书 (1)设置server.key,这里需要设置两遍密码: openssl genrsa -des3 -out server.key 1024 (2)参数设置,首先这里需要输入之前设置的密码: openssl req -new -key server.key -out server.csr 然后需要输入如下的信息 Country Name (2 letter code) [AU]: 国家名称 State or Province Name (full name) [Some

nginx配置支持http2

遇到问题:开发提出需求,某站点的访问需要支持http2 解决问题:配置nginx支持http2 http2 的支持需要nginx版本>1.9.5 .请参考升级nginx版本http://mengsir.blog.51cto.com/2992083/1859838 http2突出的优点: 多路复用与并发性 报头压缩 HTTP/2能够显著改进当前网络的性能与安全性/隐私性,对于带宽不高的网络用户尤其如此. 在startssl上申请好证书.能被你的浏览器认可. 去年申请免费的证书还是1年有效期,今天申

nginx配置本地https

客户端如何验证服务器的证书呢?服务器自己的证书必须经过某"权威"证书的签名,而这个"权威"证书又可能经过更权威的证书签名,这么一级一级追溯上去,最顶层那个最权威的证书就称为根证书.根证书直接内置在浏览器中,这样,浏览器就可以利用自己自带的根证书去验证某个服务器的证书是否有效. 如何创建一个自签名的SSL证书步骤: 1.创建Key: openssl genrsa -des3 -out server.key 2048 获得了server.key文件,以后给nginx使用

centos nginx配置支持WebSocket(signalR)

signalr 默认会调用websocket去连接集线器,centos下,用nginx默认设置不支持ws的 所以,必须更改配置,让nginx通过websocket server { listen 80; server_name admin.mu-booking.com; location / { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; pro