1. 首页 > 快讯

一文带你搞懂Nginx如何配置Http、Https、WS、WSS!-51CTO.COM

在当今的互联网领域,Nginx是最常用的代理服务器之一。很多大厂商在自己的业务系统中都使用Nginx作为代理服务器。因此,我们有必要了解Nginx对于Http、Https、WS、WSS的各种配置。来来来,和冰河一起学Nginx,一起进步,一起秃顶~~

Nginx配置Http首先我们来说一下Nginx是如何配置HTTP的。 Nginx配置HTTP是Nginx最常用的功能之一。在nginx.conf中配置相应信息,如下所示。

uploadmessage{serverlocalhost:8080max_fails=3;}server{listen80;server_namelocalhost;location/{roothtml;indexindex.htmlindex.htm;#允许cros跨域访问add_header'Access-Control-Allow-Origin''*';#proxy_redirectdefault;#关注proxy 必须注意服务器连接的超时时间。一定要注意这个超时proxy_connect_timeout10;}location/message{proxy_passhttp://message;proxy_set_headerHost$host:$server_port;}}Nginx配置Https。如果业务对网站的安全性要求比较高,此时可以在Nginx上配置Https。具体配置信息可以如下进行。

上游消息{serverlocalhost:8080max_fails=3;}服务器{listen443ssl;server_namelocalhost;ssl_certificate/usr/local/nginx-1.17.8/conf/keys/binghe.pem;ssl_certificate_key/usr/local/nginx-1.17.8/conf/keys/binghe .key;ssl_session_timeout20m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:NULL:aNULL:MD5:ADH:RC4;ssl_proto colsTLSv1TLSv 1.1TLSv1.2;ssl_prefer_server_cipherson;ssl_verify_clientoff;location/{roothtml;indexindex.htmlindex.htm;#允许cros跨域访问add_header'Access-Control-Allow-Origin''*';#连接代理服务器的超时时间,必须注意这个超时proxy_connect_timeout10;}location/message{proxy_passhttp://message;proxy_set_headerHost$host:$server_port;}}Nginx配置WSWS 全称是WebSocket。在Nginx中配置WebSocket比较简单。只需要在nginx.conf文件中进行相应的配置即可。这种方法非常简单,但是非常有效,并且可以横向扩展WebSocket服务器的服务能力。

为了方便朋友们更好的理解,这里,我将重点介绍一下Nginx配置WS。

地图$http_upgrade$connection_upgrade{defaultupgrade;''关闭;}upstreamwsbackend{serverip1:port1;serverip2:port2;keepalive1000;}服务器{listen20038;location/{proxy_http_version1.1;proxy_passhttp://wsbackend;proxy_redirectoff;proxy_set_headerHost$host; proxy_set_headerX-Real-IP$remote_addr;proxy_read_timeout3600s ;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnection$connection_upgrade;}}接下来我们分别分析一下上述配置的具体含义。

首先:map$http_upgrade$connection_upgrade{defaultupgrade;''close;} 代表:

如果$http_upgrade 不是'' (空),则$connection_upgrade 为update 。如果$http_upgrade 为''(空),则$connection_upgrade 关闭。其次:upstreamwsbackend{serverip1:port1;serverip2:port2;keepalive1000;}代表nginx负载均衡:

两台服务器(ip1:port1)和(ip2:port2)。

keepalive 1000代表每个nginx进程中上游服务器维护的空闲连接。当空闲连接过多时,最少使用的空闲连接将被关闭。当然,这并不限制连接总数。可以想象为空闲连接池的大小。设置值应该是上游服务器可以容忍的值。

终于:

服务器{listen20038;位置/{proxy_http_version1.1;proxy_passhttp://wsbackend;proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-真实IP$remote_addr;proxy_read_timeout3600s;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_head Upgrade$http_upgrade;proxy_set_headerConnection$connection_upgrade;}} 表示配置监听服务器的

Listen 20038 表示nginx监听的端口位置/表示监听路径(/表示所有路径,通用匹配,相当于默认) proxt_http_version 1.1 表示反向代理发送的HTTP协议版本为1.1,HTTP1.1支持长连接proxy_pass http://wsbackend;反向代理的uri。您可以在此处使用负载平衡变量proxy_redirect off ;这意味着不替换路径。其实是/还是不是都无所谓,因为default也替换了proxy_pass proxy_set_header Host $host;后面的路径意思是当传递的请求头保持不变。 $host是nginx内置变量,代表当前请求头。 proxy_set_header表示设置请求头proxy_read_timeout 3600s;只有表中两次请求间隔超过3600秒后才会关闭连接。默认值为60 秒,自动。关闭proxy_set_header的罪魁祸首),如果没有,关闭Nginx配置WSS连接。 WSS 代表WebSocket + Https。通俗地说,它是一个安全的WebSocket。接下来我们看看如何配置WSS。配置WS时,详细描述了配置的细节。这里我就不详细说了。

映射$http_upgrade$connection_upgrade{defaultupgrade;''close;}upstreamwsbackend{serverip1:port1;serverip2:port2;keepalive1000;}服务器{listen20038ssl;server_namelocalhost;ssl_certificate/usr/local/nginx-1.17.8/conf/keys/binghe.com.pem; ssl_certificate_key /usr/local/nginx-1.17.8/conf/keys/binghe.com.key;ssl_session_timeout20m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:NULL:aNULL !MD5:ADH:RC4;ssl_protocolsTLSv1TLSv1.1TLSv1.2; ssl_prefer_server_cipherson;ssl_verify_clientoff;位置/{proxy_http_version1.1;proxy_passhttp://wsbackend;proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-真实IP$remote_addr;proxy_read_timeout3600s;proxy_set_headerX-Forwarded-For$proxy_add_ x_forwarded_for;proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnection$connection_upgrade;}} 010- 69500

好了,文章到此结束,希望可以帮助到大家。

用户评论

来自火星球的我

终于找到一篇讲解nginx全面的文章了!

    有19位网友表示赞同!

容纳我ii

现在很多网站都用的https协议,希望能详细了解下配置方式。

    有6位网友表示赞同!

掉眼泪

之前遇到过websocket的问题,希望这篇文章能解决我的难题。

    有18位网友表示赞同!

∞◆暯小萱◆

51CTO的文章质量一直很高,相信这篇肯定很不错。

    有6位网友表示赞同!

暮染轻纱

Nginx配置复杂,我始终没弄明白,这篇文章能给我解答吗?

    有18位网友表示赞同!

伤离别

HTTP、HTTPS、WS、WSS 都有详细讲解,这个标题简直太棒了!

    有11位网友表示赞同!

孤城暮雨

想了解一下如何在nginx配置中实现安全传输,看看这篇文章有没有提及。

    有17位网友表示赞同!

冷嘲热讽i

我准备学习Web开发,Nginx是必不可少的工具,希望能从这篇教程学到东西。

    有7位网友表示赞同!

此刻不是了i

文章标题很吸引人,赶紧去看一看吧!

    有9位网友表示赞同!

盲从于你

最近在建网站,需要用到Nginx配置,刚好这篇文章可以学习一下。

    有9位网友表示赞同!

伪心

感谢作者分享这门有用的知识!

    有12位网友表示赞同!

笑傲苍穹

希望能看到详细的步骤和代码示例,以便更好地理解。

    有9位网友表示赞同!

冷青裳

我比较感兴趣 HTTPS 的配置,希望文章里有详细介绍。

    有18位网友表示赞同!

←极§速

WS 和 WSS 也是重要的通讯协议,这个标题包含了所有需要的知识点。

    有20位网友表示赞同!

为爱放弃

期待能从这篇文章中学习到NGINX的配置技巧!

    有7位网友表示赞同!

寒山远黛

网站开发离不开Nginx工具,希望这次能对自己的工作有所帮助。

    有17位网友表示赞同!

鹿先森,教魔方

感觉这篇博客很全面,应该能够解决我大部分的问题。

    有14位网友表示赞同!

笑叹★尘世美

有需要的可以去阅读一下这篇文章!

    有12位网友表示赞同!

殃樾晨

这个标题听起来很有帮助性。

    有15位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7241.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666