RHEL Apache 서버 중 하나에서 이상한 문제가 발생했습니다.
실제로는 원격 호스트의 포트 80에서 수신 대기하고 있지 않습니다. 로컬로 탐색하면 http://localhost
기본 페이지가 열립니다. 수신 대기 포트를 확인하면 인터페이스 netstat
만 수신 대기 중임을 알 수 있습니다 . 항목이 없으며 해당 항목이 거기에 있어야 합니다. 예:tcp6
:::80
tcp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
이 문제에 대해 많은 포럼을 검색해 보았지만 제안된 해결 방법 중 어느 것도 효과가 없었습니다. 에서는 으로 httpd.conf
변경했지만 원격 호스트에서 액세스하기 위해 포트 80을 열지 않았습니다. IPtables는 처음부터 비활성화되었습니다.Listen 80
Listen 0.0.0.0:80
Listen 127.0.0.0:80
IPv4를 수신하도록 서버를 어떻게 설정합니까?
답변1
assiduus@localhost:~/httpd-2.4.34$ ./configure --help | grep IPv6
--enable-v4-mapped Allow IPv6 sockets to handle IPv4 connections
assiduus@localhost:~/httpd-2.4.34$
이 기능은 소스에서 Apache httpd를 컴파일할 때 기본적으로 활성화됩니다. 배포 바이너리 패키지를 사용한 경우 분명히 이 옵션이 활성화됩니다.
답변2
다음 구성과 유사한 것을 사용하십시오.
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /path/to/your/webroot/
...
</VirtualHost>
이것":80"을 사용하면 웹 서버가 포트 80의 모든 IP 주소를 수신할 수 있습니다.그러나 이는 새로 생성된 가상 호스트 프로필이 활성화되고 웹 서버가 다시 시작될 때까지 적용되지 않습니다.
새 가상 호스트 구성을 활성화합니다.
a2ensite domain.com.conf
웹 서버 다시 시작
service apache2 restart
웹 서버가 ipv4와 ipv6 모두에서 수신 대기하는지 확인하려면 다음을 확인하세요.
netstat -plunt |grep ":80"
이것이 도움이 된다면 알려주세요 :)