已解决
【NGINX】同时支持ws请求和http请求
来自网友在路上 181881提问 提问时间:2023-11-09 21:44:26阅读次数: 81
最佳答案 问答题库818位专家为你答疑解惑
在网上找了好多资料,上去都不行,最后多方拼凑,实现ws请求和http请求同时支持,全部代码如下:
#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 {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 1000;server_names_hash_bucket_size 64;client_max_body_size 100m;#gzip on;gzip on; #开启gzip压缩功能gzip_min_length 1k; #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小.gzip_buffers 4 16k; #设置压缩缓冲区大小,此处设置为4个16K内存作为压缩结果流缓存gzip_http_version 1.1; #压缩版本gzip_comp_level 1; #设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是0到9中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)gzip_vary on; #选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩#自定义变量 $connection_upgrademap $http_upgrade $connection_upgrade { default keep-alive; #默认为keep-alive 可以支持 一般http请求'websocket' upgrade; #如果为websocket 则为 upgrade 可升级的。}server {listen 80;server_name myserverUrl;#charset koi8-r;#access_log logs/host.access.log main;# security headersadd_header X-Frame-Options "SAMEORIGIN" always;add_header X-XSS-Protection "1; mode=block" always;add_header X-Content-Type-Options "nosniff" always;add_header Referrer-Policy "no-referrer-when-downgrade" always;add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;#后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问location ^~ /anhuan-safe { proxy_pass http://127.0.0.1:8082/anhuan-safe/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}#解决Router(mode:history )模式下,刷新路由地址不能找到页面的问题location / {root anhuan;index index.html index.htm;if (!-e $request_filename) {rewrite ^(.*)s /index.html?s=s1 last;break;}}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
}
关键代码:http代码块中,增加map
#自定义变量 $connection_upgrademap $http_upgrade $connection_upgrade { default keep-alive; #默认为keep-alive 可以支持 一般http请求'websocket' upgrade; #如果为websocket 则为 upgrade 可升级的。}
在sever代码块中,你定义好的路由下面,增加以下两句话
proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"【NGINX】同时支持ws请求和http请求":http://eshow365.cn/6-36563-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Linux家目录变成了-bash-4.2$
- 下一篇: VUE获取当前日期的周日和周六