TIP게시판

제목 Nginx + Socket.io 설정
글쓴이 방문넷 작성시각 2017/02/15 10:06:19
댓글 : 1 추천 : 0 스크랩 : 1 조회수 : 18687   RSS

음 이팁은 딱히 reserve proxy사용이 불필요하신 분들에게는 큰 도움은 안됩니다.

제 설정에는 아래와같이 전제조건이 따릅니다

1. 웹서버가 Nginx 이어야할것. 1.10 버전 이상 추천.

2. 홈페이지와 마찬가지로 웹 소켓 서버도 80번 포트로 이용하고싶은 분들...

3. 개인서버이거나 서버 관리 권한이 있어야함.

 

3가지 조건이 충족하면 제팁이 조금이나마 도움이 될꺼같습니다 자 일단 설정 파일 갑니다!

 

server {
    listen  80;

    server_name socket.com;
    server_tokens off;

    access_log  /var/log/nginx/socket.access.log  main;
    error_log  /var/log/nginx/socket.error.log;

    #소켓 전용.
    location / {
        proxy_pass http://localhost:2800/;
        chunked_transfer_encoding off;
        proxy_buffering   off;
        proxy_set_header Upgrade websocket;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;  # This line.
        proxy_set_header Host $host;
        proxy_http_version 1.1;
    }

    #socket.io.js파일 전용.
    location /socket.io/ {
        proxy_pass http://localhost:2800/socket.io/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_redirect off;

        proxy_buffers 8 32k;
        proxy_buffer_size 64k;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }

}

 

이리저리 셋팅 건들다 보니 nodejs의 socket.io를 이용할때 뭔가 접속이 원활하지 않는게 눈에 보일정도였습니다 .. 옵션을 하나하나 타협을 본 결과

이렇게하면 socket.io.js파일도 빠르게 로드되면서 socket 접속도 원활하였습니다. 

좀더 응용하면 nodejs를 다중으로 돌리고 로드벨런싱? 까지 도전해볼만 하겠죠!?

 다음글 mysql 5.7 ONLY_FULL_GROUP_BY (1)
 이전글 CI EXCEL 만들기 ( XML ) 방식 - (대용량... (6)

댓글

한대승(불의회상) / 2017/02/15 10:36:44 / 추천 0
좋은 정보 감사 합니다.