![tomcat6이 포트 80에 바인딩되지 않는 이유는 무엇입니까?](https://rvso.com/image/959228/tomcat6%EC%9D%B4%20%ED%8F%AC%ED%8A%B8%2080%EC%97%90%20%EB%B0%94%EC%9D%B8%EB%94%A9%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 포트 80에서 tomcat을 실행하는 것의 의미를 알고 있지만 빠른 해결책을 찾고 있습니다. 이거 따라해보려고 하는데지도 시간. 나는 두 가지 변경 사항을 적용하여 튜토리얼을 따랐습니다.
- tomcat6은 사용자 이름입니다. tomcat은 다음으로 실행됩니다.
- Tomcat conf 파일의 위치:
/usr/share/tomcat6/bin/catalina.sh
하지만 여전히 권한 오류가 발생합니다. Java에서는 포트 80에 바인딩할 수 없다고 합니다. 또 어떻게 해야 합니까? 사람들이 디버깅할 수 있도록 어떤 다른 정보를 제공해야 합니까? 확인하자면 포트 80에서 실행되는 다른 항목은 없습니다.
답변1
/etc/default/tomcat6
다음과 같이 AUTOBIND 속성을 "yes"로 변경할 수 있습니다 .
AUTHBIND=yes
Tomcat을 다시 시작하면 사용 가능한 권한 있는 포트(1-1023)를 사용할 수 있습니다.
답변2
Tomcat 구성을 실제로 건드리지 않고 이를 수행하는 두 가지 방법이 있습니다.
포트 80에서 포트 8080으로 트래픽을 리디렉션하는 iptables 스크립트를 만들 수 있습니다(그러면 Tomcat 설정을 조작할 필요가 없습니다).
iptables용
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
트릭을 할 것입니다! (uppstart에서 자동으로 수행되도록 스크립트를 작성하십시오.
또는 이를 통해 Tomcat 서버에 대한 연결을 실제로 프록시하는 Apache 역방향 프록시를 만들 수 있습니다(실제로 요청을 캐시하고 연결 속도를 높일 수 있으므로 좋습니다).
답변3
Tomcat HTTP 커넥터에서 포트 80의 커넥터가 127.1이 아닌 모든 인터페이스 또는 0.0.0.0에 바인딩되어 있는지 확인하세요. 이는 다음과 같은 URL에 연결할 수 없는 이유를 설명할 수 있습니다. http://10.0.0.2:80 하지만 당신은 할 수 있습니다 http://127.1:80
답변4
authbind를 사용하여 Tomcat 서비스를 시작하면 사용자가 1024 미만의 포트를 시작할 수 있으며 리디렉션이나 iptables가 필요하지 않습니다.
apt-get 설치 authbind -y
Authbind 소프트웨어를 설치하려면
chmod -R 755 /etc/authbind
그룹은 사용자 그룹이어야 합니다.
chown -Rh 루트:그룹 /etc/authbind
그 후 아래 명령을 실행하십시오.
CD /etc/authbind/byuid
예를 들어 사용자 ID가 2000이라고 가정하면 사용자 ID 번호를 사용할 수 있습니다.
에코 '0.0.0.0/0:1,1023' > 2000
해당 파일은 사용자와 그룹이 소유해야 합니다.
초운 : 2000
chmod 700 2000
Tomcat 시작 파일 $CATALINA_BASE/startup.sh에 아래 줄을 추가합니다.
export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
Authbind 서비스 start.sh를 사용하여 Tomcat을 시작하는 경우
아래 줄에 주석을 달아주세요
#$CATALINA_HOME/bin/startup.sh
이 끝을 파일의 끝으로 추가
AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c "
$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh
이제 1024개 미만의 포트를 가진 사용자로 Tomcat 서비스를 시작할 수 있습니다.