<참고 블로그 글>
http://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html
https://dany-it.tistory.com/107
https://httpd.apache.org/docs/2.4/ko/urlmapping.html
https://arclab.tistory.com/103
https://fruitdev.tistory.com/106
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=writer0713&logNo=221049806513
https://httpd.apache.org/docs/2.4/mod/mod_proxy_connect.html
#. WebSocket 관련
https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
https://xestinf.tistory.com/75
https://j1mmyson.github.io/posts/upgrade/
<추가로 load 필요한 모듈>
(필수로 필요한 모듈)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
(http 프로토콜로 프록시 전달할 경우)
LoadModule proxy_http_module modules/mod_proxy_http.so
(ajp 프로토콜로 프록시 전달할 경우)
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
(ws 프로토콜로 프록시 전달할 경우)
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
<Forward Proxy / Reverse Proxy>
ProxyRequests 옵션을 어떻게 설정하는지에 따라
Forward Proxy 로 동작할지 Reverse Proxy 로 동작할지 결정된다.
ProxyRequests On -> Forward Proxy
ProxyRequests Off -> Reverse Proxy
<Forward Proxy 설정 예시>
httpd.conf 파일에 아래 옵션을 추가한다.
ProxyRequests On
ProxyVia On
<Proxy "*">
Require all granted
</Proxy>
AllowCONNECT 8080
AllowCONNECT 옵션에 작성하는 포트 번호는
프록시 서버를 거쳐서 최종적으로 호출하게 될 api 주소의 포트 번호를 의미한다.
ex) 프록시 서버를 거쳐 최종적으로 호출하게 될 api의 주소가 아래와 같다면
https://api.keuangkuo.com:8080/getAddress
AllowCONNECT 옵션에 8080 포트를 추가한다.
#. 테스트
export http_proxy=http://{프록시서버IP}:{프록시서버 HTTP PORT}
export https_proxy=http://{프록시서버IP}:{프록시서버 HTTP PORT}
export no_proxy="127.0.0.1, localhost" (해당 옵션은 필수 아님)
curl -i -X PUT -d curl https://api.keuangkuo.com:8080/getAddress
curl https://api.keuangkuo.com:8080/getAddress
<Reverse Proxy 설정 예시 - http 프로토콜>
OHS 서버의 httpd.conf 에 아래의 옵션 추가
ProxyPass {프록시 서버에서의 호출 URL} {Application 처리할 서버에서의 호출 URL}
ProxyPassReverse {프록시 서버에서의 호출 URL} {Application 처리할 서버에서의 호출 URL}
상황 예시)
Proxy 서버 IP : 192.168.56.3
Remote 서버 IP : 192.168.56.2
OHS Listen Port : 양측 모두 80
---------------------------------------
Proxy 서버의 httpd.conf 에 옵션 추가
ProxyPass /send/send.do http://192.168.56.2/send/send.do
ProxyPassReverse /send/send.do http://192.168.56.2/send/send.do
---------------------------------------
http://192.168.56.3/send/send.do 를 호출하면 (Proxy 서버의 IP Address)
http://192.168.56.2/send/send.do 가 최종적으로 화면에 출력된다
send.do로 호출하고 최종적으로 send.jsp 가 호출되도록 테스트 해 보았음.
호출 URL이 반드시 .do 확장자여야 하는 것은 아님.
Proxy Server 쪽에 send.do 라는 파일은 존재하지 않으며
최종적으로 Remote 서버의 정보를 호출하기 위한 수단으로만 사용된다.
<Reverse Proxy 설정 예시 - webSocket>
암호화 되지 않은 프로토콜인 ws 와 (http과 비슷)
암호화 프로토콜인 wss 가 있다 (https과 비슷)
httpd.conf 파일에 아래 옵션을 추가한다.
WAS 서버에는 비암호화 프로토콜인 ws 프로토콜로 전달한다.
ProxyPass /websocket ws://127.0.0.1:8000/websocket
ProxyPassReverse /websocket ws://127.0.0.1:8000/websocket
브라우저에서 URL로 WEB서버 호출 시 ws/wss 프로토콜을 직접 사용할 수는 없다.
html 파일에서 ws/wss 프로토콜로 WEB서버를 호출하고, WEB서버가 WAS서버 측으로 프록시를 전달하는 구조.
ws = new WebSocket('wss://127.0.0.1/test/websocket/test');
'WEB - Apache 계열 > 각종 설정' 카테고리의 다른 글
OHS - WLS 연동 시 <Location> 태그 사용할 때 유의할 점 (0) | 2021.08.10 |
---|---|
OHS 웰컴페이지 설정 (0) | 2021.08.10 |
[OHS12cR2] orapki 관련 에러 현상 (0) | 2021.07.13 |
[OHS] WLS Plugin Parameter 옵션 목록 (0) | 2021.04.16 |
[OHS] 디렉토리 리스팅 차단하기 (0) | 2021.04.15 |