Apache-2.2

同一台伺服器上的多個 Apache 虛擬主機

  • August 29, 2014

我正在嘗試設置一個虛擬主機/重定向點,以便我可以在一個站點上擁有兩個不同的系統。

到目前為止,這就是我所擁有的:

NameVirtualHost 89.104.220.207:80
NameVirtualHost 89.104.220.207:1500
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 89.104.220.207:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/******/html
    ServerName www.******.dk
    ServerAlias ******.dk
    ErrorLog /var/www/*****.dk/logs/error_log


</VirtualHost>
<VirtualHost 89.104.220.207:1500>
    ServerAdmin webmaster@example.org
    DocumentRoot /var/www/******/
    ServerName *******
    ServerAlias ******.dk
    ErrorLog /var/www/*****.dk/logs/error_log

</VirtualHost>

我的想法是,如果我去 89.104.220.207:1500 那麼我應該打開/var/www/foo/

然而,這似乎不起作用:當我嘗試為 foo 輸入 I 時,沒有任何反應,或者我得到一個錯誤。如果你去 89.104.220.207:1500 你會看到你得到一個錯誤。

apache監聽非標準埠,您需要將Listen指令添加到httpd.conf

Listen 1500

SELinux受保護的機器上,這將導致apache無法啟動,因為這SELinux將阻止對所有非標準 http 埠的訪問。

要解決此問題:

# semanage port -a -t http_port_t -p tcp 1500

然後確認它已添加:

# semanage port -l | grep '^http_port_t'
http_port_t                    tcp      1500, 80, 443, 488, 8008, 8009, 8443

注: semanagepolicycoreutils-python包裝內。

apache現在應該啟動並且虛擬主機應該在非標準埠上工作。


請記住,當使用非標準埠時,您的防火牆可能需要打開:

# iptables -I INPUT -p tcp --dport 1500 -j ACCEPT
# service iptables save

引用自:https://serverfault.com/questions/624815