일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MFA
- MYSQL
- 앱리소스
- SwiftUI
- albumbook
- kmip
- Nodejs
- fido
- OSX
- otpkey
- MSYS2
- WebAuthn
- Android
- SSL
- OTP
- SSH
- apple
- appres
- FIDO2
- 앨범북
- Xcode
- 인증
- git
- 앱스토어
- SWIFT
- openssl
- css
- 애플
- 안드로이드
- 2FA
- Today
- Total
인디노트
Tomcat & Apache & Websocket 사용 시 방화벽에 의한 프록시 설정 본문
물론 자바로 웹 서버 구축 시 Tomcat을 이용할 경우는 많을 것 같구요.!!
Tomcat을 여러개 묶어서 사용(?) 하거나 Apache와 Mod_JK 통신 (AJP) 해서 사용하시는
분들을 은근 많을 것으로 생각이 됩니다만..
추가적으로 WebSocket을 사용하려고 하는데 ... 굳이 프록시를????
그렇게 생각하다보니.. 이번 포스팅 하는 경우는 쫌 특별한 경우라고 생각이 됩니다.
일단 이 방법을 알게된 이유는 방화벽 때문입니다.
기본적으로 제가 있는 공간은 80 Port를 제외한 나머지 포트가 모두 외부와는 막혀 있어요 ㅠㅠ
거기에 전 주로 자바를 이용해서 개발을 하는 개발자이구요..
그러다보니 Tomcat + Mod_ JK + Apache를 많이 사용하게 됩니다.
> Tomcat : 웹 컨테이너로 사용
> Apache : 정적 파일 (HTML, JavaScript, CSS)
일반적인 통신(HTTP) 할 때는 문제가 없습니다. AJP 통신을 통해 .. Tomcat이 8080 포트라 해도 80포트로 접근이 가능하기 때문이죠.
그런데 HTML5 WebSocket의 경우 ws:// 로 통신을 하게 됩니다!!!
그러다보니 ㅠ ㅠ WebSocket End-Point가 /test 라고 하면 클라이언트에서 ws://localhost/test 를 호출 해버리더군요 ㅠㅠㅠㅠ
그래서 찾게되었습니다!! Apache에서 어떻게 WS 통신을 톰캣으로 보낼 수 있을까!?
자 서론이 너무 길었고... 이제 설명할께요 ^^;;;;;;; (너무 간단해서 서론이 길어졌네요;;)
※설정한 운영체제는 Ubuntu 14.04 를 기본으로 하고 있습니다.
1. 프록시 플러그인을 아파치에서 사용할 수 있도록 활성화 한다.
#a2enmod proxy_wstunnel |
추가 정보!!!
mod 플러그인으로 일반적인 proxy가 있습니다 (#a2enmod proxy)
하지만 이 프록시 플러그인은 웹 소켓을 지원하고 있지 않아요~ 그렇기 때문에 proxy_wstunnel을 사용해야되고
이놈을 활성화하면 기본적으로 porxy 가 동시에 활성화 됩니다.
2. VirtualHost에 프록시 관련 설정 추가 (기본 위치 : /etc/apache2/sites-enabled/000-default.conf)
<VirtualHost *:80> ... ... ... <Location /app/test> //클라이언트에서 요청하게 될 주소 ProxyPass ws://localhost:8080/TomcatWeb/test ProxyPassReverse ws://localhost:8080/TomcatWeb/test //내부 실제 포트 접속 경로 </Location> </VirtualHost> |
3. 마지막으로 apache를 재시작해준다.
#service apache2 restart |
'개발 플랫폼 및 언어' 카테고리의 다른 글
[안드로이드 스튜디오]라이브러리 프로젝트(모듈) 링크로 가져오는 방법 출처: http://gun0912.tistory.com/15 [박상권의 삽질블로그] (0) | 2017.03.17 |
---|---|
톰캣 7에서 SSL(HTTPS) 설정하기 (0) | 2017.03.17 |
아파치 웹서버 2.4 컴파일 (0) | 2017.03.14 |
SSH Key - 비밀번호 없이 로그인 (0) | 2017.03.04 |
How to setup a Jenkins slave with ssh private key (0) | 2017.03.04 |