Theia를 숨겨 보았습니다.

모처럼 넣은 Theia 하지만 클라우드나 VPS에 그대로 두면 보안 문제가 됩니다. 그래서 Apache에 리버스 프록시를 설정하고 Apache를 통해 액세스하도록 배치했습니다. 게다가 인증이나 SSL을 설정해, 보안을 확보하는 목적입니다.
Apache를 설치하는 데 특별한 것은 없으므로이 논문에서는 배포 후 설정에 대해 설명합니다.

인증 설정



우선은 인증 설정에서입니다. 이번에는 Digest 인증을 했습니다.

sites-available/000-default.conf
<Location "/">
  AuthType Digest
  AuthName "DigestAuth"
  AuthUserFile /etc/apache2/.digestauth
  Require valid-user
</Location>

역방향 프록시 설정



다음으로 역방향 프록시 설정입니다.
Theia는 yarn theia start ~/workspace와 같이 시작해야합니다. 그러면 기본 호스트 이름인 localhost, 포트 3000에서 시작됩니다.
Theia에 액세스하는 URL은 http://example.com/theia/입니다. Theia는 WebSocket을 사용한 통신도 수행하므로 이에 대한 설정도 추가합니다.

mods-available/proxy.conf
ProxyPass /theia/services/ ws://localhost:3000/services/
ProxyPassReverse /theia/services/ ws://localhost:3000/services/
ProxyPass /theia/ http://localhost:3000/
ProxyPassReverse /theia/ http://localhost:3000/

/theia/services/를/theia/보다 앞에 설정하지 않으면, 전부/theia/로 설정한 분에게 가져가 버립니다.

SSL의 경우



SSL의 도입 자체는 몇 가지 방법이 있습니다만, 이번은 Let's Encrypt를 이용했습니다.
도입은 커멘드로 실시해, 설정 파일도 재기록해 줍니다. 그 결과 다음과 같은지 확인하십시오.

http로 액세스할 때 https로 리디렉션합니다.



sites-available/000-default.conf
RewriteEngine On
RewriteRule ^ https://%{SEVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

SSL의 경우 인증 설정



sites-available/000-default-le-ssl.conf
자동으로 작성된 구성 파일에 000-default.conf와 동일한 인증 설정이 포함되어야 합니다.
<Location "/">
  AuthType Digest
  AuthName "DigestAuth"
  AuthUserFile /etc/apache2/.digestauth
  Require valid-user
</Location>

그러나 이것으로 끝나지 않았다 ...



이제 http로 액세스해도 https로 리디렉션되어 ID/PW의 입력 다이얼로그도 표시되어 「좋아요」라고 생각했습니다만. . .
PC라면 그대로 움직이지만, iPad라면 Theia에 액세스한 뒤, 스피너가 빙글빙글 하는 것만으로 아무것도 표시되지 않았습니다.
이렇게, Theia 도입의 계기는 iPad에서의 개발 환경 구축입니다! 부러움을 느끼면서, 여행은 계속된다 이었습니다.

좋은 웹페이지 즐겨찾기