nginx配置websocket(直接复制可用)

文章目录

  • 前言
  • 一、nginx相关配置


前言

后端开启了websocket,但是使用nginx转发的时候出了问题,访问不了。重新调整一下nginx的配置即可。

一、nginx相关配置

	upstream admin {
      server 192.168.10.121:3333;  # ip + 端口
    }

	map $http_upgrade $connection_upgrade {
		default upgrade;
		'' close;
	}
	#用不同子域名配置多一个443
	server {
	    listen 443 ssl;
	    #配置HTTPS的默认访问端口为443。
	    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
	    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
	    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
	    root html;
	    index index.html index.htm;
	    ssl_certificate /ssl/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
	    ssl_certificate_key /ssl/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
	    ssl_session_timeout 5m;
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	    #表示使用的加密套件的类型。
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
	    ssl_prefer_server_ciphers on;
	    location ~*^.+$ {
	        # root html;  #站点目录。
	        index index.html index.htm;
	        proxy_pass  http://admin;  #请求转向 admin 定义的服务器列表
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection $connection_upgrade;
	    }
	}

其实核心就是这两句

			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection $connection_upgrade;

其中变量值使用如下定义的

	map $http_upgrade $connection_upgrade {
		default upgrade;
		'' close;
	}

你可能感兴趣的:(Linux运维部署相关,nginx,websocket,https)