nginx 는 http 프로 토 콜 대 리 를 https 부대 ws 로 업그레이드 합 니 다.

2304 단어 서버
1. 자체 검증 용 ssl 인증서 생 성
 1. 우선 서버 엔 드 의 비밀 키 (key 파일) 를 생 성 합 니 다.
    openssl genrsa -des3 -out server.key 1024
    비밀 번 호 를 입력 하 라 고 두 번 요구 할 수 있 습 니 다. 같은 것 을 입력 하면 됩 니 다.
    비밀 번 호 를 입력 하면 server. key 파일 을 얻 을 수 있 습 니 다.
2. key 파일 비밀 번 호 를 제거 합 니 다.
     openssl rsa -in server.key -out server.key
3. 서버 인증서 신청 파일 server. csr 를 만 듭 니 다.
     openssl req -new -key server.key -out server.csr
4. 10 년 유효기간 의 CA 인증서 ca. crt 를 만 듭 니 다.
     openssl req -new -x509 -key server.key -out ca.crt -days 3650
5. 10 년 유효기간 서버 인증서 server. crt 만 들 기
     openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
이렇게 해서 모두 다음 파일 을 생 성 합 니 다: server. key  server.csr  ca.crt  server.crt  ca.srl 
그 중에서 nginx 는 server. key 를 사용 해 야 합 니 다.  server. crt 
nginx 설정
그 중 웹 소켓 은 ws 에서 ws 대리 로 업그레이드 되 었 다.
	#     nginx  websocket   
        map $http_upgrade $connection_upgrade {
		default upgrade;
		'' close;
	}
	upstream websocket {
		server xxx.xx.xx.xx:xxxx;
	}
	
	upstream test2{
		server xxx.xx.xx.xx:xxxx;
	}
	

server {
        listen       443 ssl;
        ssl on;

        server_name xxx.xx.xx.xx;

        ssl_certificate /usr/local/nginx/ca/server.crt;
        ssl_certificate_key /usr/local/nginx/ca/server.key;

		ssl_session_timeout 30m;
		ssl_session_cache shared:SSL:10m;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
		ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
		ssl_prefer_server_ciphers on;
		ssl_verify_client off;

		location  /test {
				root   html;
				index  index.html index.htm;
			}	
			
		location /websocket {		
			proxy_redirect off;
			proxy_pass http://websocket;     #   
			proxy_set_header Host $host;
			proxy_set_header X-Real_IP $remote_addr;
			proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;   #      
			proxy_set_header Connection upgrade;
		}

		location /test2{		
			proxy_redirect off;
			proxy_pass http://test2;     #   
			proxy_set_header Host $host;
			proxy_set_header X-Real_IP $remote_addr;
			proxy_set_header X-Forwarded-For $remote_addr:$remote_port;

		}
		
	}

좋은 웹페이지 즐겨찾기