在当今的互联网领域,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
好了,文章到此结束,希望可以帮助到大家。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7241.html
用户评论
终于找到一篇讲解nginx全面的文章了!
有19位网友表示赞同!
现在很多网站都用的https协议,希望能详细了解下配置方式。
有6位网友表示赞同!
之前遇到过websocket的问题,希望这篇文章能解决我的难题。
有18位网友表示赞同!
51CTO的文章质量一直很高,相信这篇肯定很不错。
有6位网友表示赞同!
Nginx配置复杂,我始终没弄明白,这篇文章能给我解答吗?
有18位网友表示赞同!
HTTP、HTTPS、WS、WSS 都有详细讲解,这个标题简直太棒了!
有11位网友表示赞同!
想了解一下如何在nginx配置中实现安全传输,看看这篇文章有没有提及。
有17位网友表示赞同!
我准备学习Web开发,Nginx是必不可少的工具,希望能从这篇教程学到东西。
有7位网友表示赞同!
文章标题很吸引人,赶紧去看一看吧!
有9位网友表示赞同!
最近在建网站,需要用到Nginx配置,刚好这篇文章可以学习一下。
有9位网友表示赞同!
感谢作者分享这门有用的知识!
有12位网友表示赞同!
希望能看到详细的步骤和代码示例,以便更好地理解。
有9位网友表示赞同!
我比较感兴趣 HTTPS 的配置,希望文章里有详细介绍。
有18位网友表示赞同!
WS 和 WSS 也是重要的通讯协议,这个标题包含了所有需要的知识点。
有20位网友表示赞同!
期待能从这篇文章中学习到NGINX的配置技巧!
有7位网友表示赞同!
网站开发离不开Nginx工具,希望这次能对自己的工作有所帮助。
有17位网友表示赞同!
感觉这篇博客很全面,应该能够解决我大部分的问题。
有14位网友表示赞同!
有需要的可以去阅读一下这篇文章!
有12位网友表示赞同!
这个标题听起来很有帮助性。
有15位网友表示赞同!