vscode server reverse proxy 설정
vscode server를 설치하고 reverse proxy를 이용해서 SSL이 적용된 도메인으로 접근하려고 했는데, 잘 안 됐다. 이유는 websocket 연결 때문이었다.
vscode를 https 모드로 활성화한 후에 공인 인증서가 아니어도 프록시가 작동하게 하는 모듈(vscode에서 기본 제공하는 인증서가 공인인증서가 아니므로), 그리고 websocket을 rewrite하는 코드와 apache2의 proxy_wstunnel을 활성화하면 잘 작동한다. 전체적으로 아래와 같은 설정을 자신의 설정에 포함시키면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<VirtualHost *:80> 자신의 설정 </VirtualHost> <VirtualHost *:443> AllowEncodedSlashes on SSLProxyCheckPeerCN off -> vscode 서버의 비공인 인증서를 허용함 SSLProxyCheckPeerName off ProxyPreserveHost on SSLProxyEngine on -> SSL 통신을 Proxy 할 수 있도록 한다. RewriteEngine on # rewrite websocket 웹소켓 요청 주소를 받으면 링크해준다. RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) wss://(vscode server 주소, 일반적으로 localhost:포트번호)/$1 [P,L] ProxyPass "/" "https://(vscode server 주소, 일반적으로 localhost:포트번호)/" ProxyPassReverse "/" "https://(vscode server 주소, 일반적으로 localhost:포트번호)/" -> 리버스 프록시 설정 SSLEngine on 자신의 설정 </VirtualHost> |
a2enmod로 프록시 관련 모듈인 proxy, proxy_http, proxy_wstunnel을 활성화 시킨 후 apache2를 재로드하면 잘 작동하는 것을 볼 수 있다.
참고 :
https://github.com/cdr/code-server/issues/282