문제는 이렇게 웹서버를 root계정으로 실행할 경우 보안의 문제가 생길수가 있기 때문에 문서들을 찾아볼 경우 이렇게 사용하는 것을 권하지 않고 있습니다. 하지만 80포트를 사용해야할 필요가 있을 경우 찾아보니 OS에서 제공하는 iptables을 사용해서 80포트를 다른 포트로 리다이렉트 시키거나 authbind를 설치해서 특정포트를 특정앱에게 사용할 수 있도록 허용해 줄수 있습니다. 고민을 하다가 authbind를 사용하려면 별도의 설치를 해야하기도 해서 iptable을 사용하기로 했습니다.
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
위와같은 명령어를 터미널에서 입력하면 80으로 들어오는 모든 패킷을 8080으로 리다이렉트 처리해버립니다. 80포트로 요청을 받기위해서 웹서버를 8080으로 띄워놓고 위처럼 iptable을 이용해서 80으로 들어오는 패킷을 웹서버가 받도록 하는 것입니다.
옵션을 간단히 설명하면 -A는 새로운 룰을 추가하는 것으로 PREROUTING에 대한 룰을 추가합니다. -t는 테이블을 지정하는 옵션으로 nat로 지정합니다 -i 는 인터페이스를 지정하며 인터넷에 연결되어 있는 장비를 eth0으로 지정하고 -p는 프로토콜을 지정하는 옵션으로 tcp를 지정하였습니다. --dport 은 도착지포트를 의미하며 여기서는 80을 지정합니다 -j는 패킷을 어떻게 처리할 지를 결정하는 옵션으로 8080으로 리다이렉트 처리합니다.
iptables -t nat -L
위 명령어를 입력하면 추가한 룰을 확인해 볼 수 있습니다. 기본적인 리스트는 -L 옵션으로 확인하지만 PREROUTING은 nat테이블을 지정해서 보아야 하는것 같습니다.
[Linux] IPTABLE 기본 사용법이나 IptablesHowTo 를 보면 자세히 나와 있습니다.
관리자만 볼 수 있는 댓글입니다.
thank you for your comment.
I visited your site. but I don't know how I leave comments.
sorry. I can't read your language.
관리자만 볼 수 있는 댓글입니다.
iptable + node.js + scala + gollum 등을 종합해보면 (글로벌) 아웃사이더 님은 geek하신 분인듯 하네요... 하하핫
이 댓글은 무슨....
깊이가 중요한거죠 ㅡㅡ;;
관리자만 볼 수 있는 댓글입니다.
why do your want south Korea win.
Iran is your country.
I hope that match will be good match.
잘 보고 갑니다. +_+)/~
예.. 근데 앞에 그냥 웹서버 두는게 훨 나은것 같아요. ㅎ
감사합니다. ~
혹시 iptables 말고 다른 방법도 있을까요?~??
보통은 80포트에 웹서버를 두고 애플리케이션 서버와 연결하는게 더 일반적입니다. 요즘은 Docker쓰면 Docker이용해서 포트 바인딩을 하기도 하고요.
정말 감사합니다. 올려주신 글데로 iptables에 추가해서 ssl 관련 에러를 해결했습니다.
전에 인증서하고 충돌이 나서 제대로 접속이 안됐는데 444포트에 다른 ssl을 설치하고 443으로 오는 모든 요청을 444로 보내니 문제가 해결되네요 정말 감사드립니다.
도움되셨다니 다행입니다.