Linux에서는 below 1024(1024 아래) 밑의 포트들을 root가 아닌 권한인 유저들이 여는 것을 허용하지 않는다
이것 땜에 좀 문제가 있었는데, 2가지 해결 방법이 있다.
1. iptables에서 port fowarding을 해준다.
reroute를 통해서 8080을 80으로 포워딩해주는 방법이 있다.
(root 권한에서 실행)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
2. authbind를 설치한다.
authbind는 debian 패키지에 있는 1024 이하의 포트들을 root가 아닌 유저들이 열 수 있게 하는 것. 사실 나도 1번이 하기 싫어서 찾아보다가 이번에 처음으로 알게 되었다.
원래대로 서비스에 설치해서 쓰는거면 /etc/init.d/tomcat* (해당버전)에 들어가서 authbind 를 YES인가 OK로 설정하면 되는데, 나는 서비스에 설치해서 안쓰니까..험난하다
우선 authbind를 설치한 다음에.. 80포트를 접근 가능하게 바꿔준다. 백형 블로그 참고했다
http://www.2ality.com/2010/07/running-tomcat-on-port-80-in-user.html
ㄱ. authbind를 설치
ㄴ. root 로 authbind 폴더에 쓸 포트(80)을 chown으로 쓸 계정에 줌. 이 백형은 glassfish를 쓰지만 난 촌스럽게 톰캣 쓰므로 톰캣으로 간다
* ipv6은 지원안한다는데, 음.. 아직 신경쓰지 않기로 했다. nginx경우에는 신경을 좀만 쓰면 되지만, 이 놈은 아닌 듯. 그렇다고 톰캣을 root로 올릴 순 없잖음...
ㄷ. setenv.sh 에 CATALINA_OPTS에 IP4stack 쓴다고 설정
ㄹ. startup.sh에 authbind를 통해 구동하게 강제로 바꿈
되나 확인해보면 됨
'study > java' 카테고리의 다른 글
간단한 jpg(jpeg) 리사이징하는 java 클래스 (0) | 2013.03.12 |
---|---|
생각난 김에 올리는 스프링노트에 있던 몇 몇 문제 해결했던 기억들 (1) | 2011.09.24 |