시나리오를 가정해 봅시다.
- 도메인 이름: xyz.com
- 타사 DNS 서버에서 확인된 도메인 이름: ns1.xxx.com
- 도메인 이름 바인딩 IP 주소: 123.123.123.123
- apache2는 123.123.123.123에 설치되어 있습니다.
내 /etc/httpd/conf/httpd.conf는 다음과 같아야 합니다:
config1:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName 123.123.123.123:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config2:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName xyz.com:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config3:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName localhost:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config4:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName 127.0.0.1:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
내 예에 적합한 구성 파일은 무엇입니까?
답변1
Apache ServerName 지시어와 동일한 기본 기능을 수행합니다.nginx server_name 지시문즉, Host
선택한 가상 호스트 구성과 일치하는 경우 수신 HTTP 요청의 매개변수와 비교됩니다. 중요한 것은 웹 서버가 수신 대기 중인 네트워크 인터페이스의 포트나 IP 주소에 대한 요청을 웹 서버가 확인할 수 없는 경우 가상 호스트를 선택하는 데에만 사용된다는 점입니다. 즉, 가상 호스트를 선택하는 데만 사용 됩니다 ServerName
. <VirtualHost *:80>
가상 호스트/구성으로 명시적으로 확인되지 않습니다.
문서에서
설명: 서버가 자신을 식별하는 데 사용하는 호스트 이름 및 포트입니다.
구문: ServerName [scheme://]domain-name|ip-address[:port]
귀하의 예에 따르면 ServerName 지시문은 다음과 같이 Apache 가상 호스트 구성에서 사용됩니다.
<VirtualHost *:80>
ServerName xyz.com
...
...
# ...
</VirtualHost>