我有一個配置為伺服器 VHOST 的 LAMP 伺服器。這裡的問題是,當我嘗試透過同一區域網路存取它時,我似乎嘗試存取本地IP位址而不是VHOST位址。但是,當我嘗試從外部存取伺服器時,它會顯示正確的 VHOST。我需要配置 apache 以某種方式為正確的網站而不是預設網站提供服務。我該怎麼做呢?
這是我的兩個 VHOST 條目的範例。
預設
<VirtualHost *:80>
ServerAdmin [email]
ServerName eresk.fi
DocumentRoot /home/web/apache-webserver/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/web/apache-webserver/public_html/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /home/web/apache-webserver/cgi-bin/
<Directory "/home/web/apache-webserver/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
另一個網站
<VirtualHost *:80>
ServerAdmin [email]
ServerName diggety.net
ServerAlias *.diggety.net
DocumentRoot /home/web/diggety/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/web/diggety/public_html/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /home/web/diggety/cgi-bin/
<Directory "/home/web/diggety/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<IfModule php5_mod.c>
php_value session.gc_maxlifetime 604800
</IfModule>
ErrorLog ${APACHE_LOG_DIR}/error_diggety.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_diggety.log combined
</VirtualHost>
答案1
這不是阿帕契的錯。 VirtualHost 指令不適用於透過 IP 的請求。您造訪網站的 LAN 中的電腦會檢查 DNS 伺服器並取得外部 IP 結果。如果伺服器位於同一網路上,那麼網路上的適當路由器應該正確解析/路由它,但某些路由器並非總是如此。
若要對此進行測試,請在用戶端上為您的網域新增自訂 DNS 項目,將其對應到伺服器的內部 IP。/etc/hosts
如果用戶端是 Linux 或Windows 上的用戶端,請編輯C:\Windows\system32\drivers\etc\hosts
並新增此內容(將 10.0.0.1 變更為伺服器的內部 IP):
10.0.0.1 domain.com
更新:如果 DNS 解決方案有效,您可以在內部網路上設定自訂 DNS 伺服器,這將允許您設定自訂 DNS 項目。這樣您就不需要在客戶端上手動設定它。