Railo 4.0 이상에서 CGI변수에서 원격 IP주소를 127.0.0.1로 반환할때.

Railo 4.0을 얼마전에 설치하고 나서 약간은 황당한 경우가 있었습니다. Railo 4.0을 설치한 후 다음과 같은 ColdFusion코드를 실행해 보면, 분면 제가 접속한 IP주소가 나타나야 하는데 항상 127.0.0.1으로 표기되는 황당한 사건이 발생한거죠. 어떤 IP에서 접속해도 늘 127.0.0.1으로 보이는 겁니다. 

<cfoutput>#CGI.REMOTE_ADDR#</cfoutput>

원인을 찾기위해 검색을 해본 결과 Tomcat 7에 문제가 있는것 같습니다.(참조 : https://groups.google.com/forum/?fromgroups=#!topic/railo/U9TSv3L4j94) 원인이 여러원인이 될 수 있다고 합니다만, 다음과 같이 해결할 수 있습니다. 

먼저, Railo의 설치경로 일반적으로 설치했다면, /opt/railo/tomcat/conf/web.xml 파일을 vi로 열어 맨 마지막줄 </web-app>바로 위해 다음의 코드를 넣어줍니다. 그런 다음 Railo를 Restart해 줍니다. 다시 위의 ColdFusion 코드를 실행하면 정상적으로 원격 접속 IP주소를 가져옵니다.

<filter>
	<filter-name>RemoteIpFilter</filter-name>
	<filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
</filter>

<filter-mapping>
	<filter-name>RemoteIpFilter</filter-name>
	<url-pattern>/*</url-pattern>
	<dispatcher>REQUEST</dispatcher>
</filter-mapping>

한가지 팁 ! Railo 4.0을 설치한 후 JSP를 같이 사용하고 싶다면? 여기서는 Railo 4.0 Linux Server 버전을 설치했다고 가정하고 설명드리면.. Railo에서는 기본적으로 JSP가 활성화되어 있습니다만, 초기 설치시 Installer가 Apache웹서버와 연동을 해줄때 Apache 환경설정 파일에 다음과 같은 코드를 자동으로 넣어주는데, 여기서 JSP에 해당되는 주석 한줄을 추가해 줍니다. (주석처리된 한줄만 추가하면 됩니다.) 그런다음 Apache의 DirectoryIndex의 항목에 index.jsp를 추가해 주면되겠죠? 물론 Apache를 재시작해 주어야 합니다.

<IfModule mod_proxy.c>
<Proxy *>
Allow from 127.0.0.1
</Proxy>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfres)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
###아래의 한줄을 추가해 줍니다.##############################
ProxyPassMatch ^/(.+\.jsp)(/.*)?$ http://127.0.0.1:8888/$1$2
#############################################################
# optional mappings
#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
ProxyPassReverse / http://127.0.0.1:8888/
</IfModule>

There are no comments yet. - 아직 댓글이 없습니다.

Leave a Comment

Leave this field empty:




Powered by

© 2010-2018 NOOREE.COM