ubuntu apache2 虚拟主机在端口 80 以外的正确配置是什么

ubuntu apache2 虚拟主机在端口 80 以外的正确配置是什么

我刚刚继承了一个服务器 ubuntu 10.04,它已经在端口 80 上运行 tomcat。因此 apache 2/etc/apache2/ports.conf已经监听 8858。

我将我的子域名(比如说 admin.domain.com)指向该框的 ip,这样xx.xx.xx.xx:8858两者admin.domain.com:8858都会将我发送到根文件“它起作用了”

所以我确实在下面创建了/var/www/vhots/admin.domain.com/htdocs/var/www/vhots/admin.domain.com/log 我的第一个配置如下所示,基本上在重新加载并重新启动 apache2 后,出现了这个错误

VirtualHost *:8858 - 不支持混合使用 NameVirtualHost 地址的 * 端口和非 * 端口,否则将导致未定义的结果 httpd(pid 7466?)未运行

###/etc/apache2/apache2.cong
NameVirtualHost *
#NameVirtualHost *:8858
<VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</Virtualhost>


###/etc/apache2/sites-available/admin.domain.com
<VirtualHost *:8858>
    ServerAdmin [email protected]
    ServerName admin.domain.com
    ServerAlias www.admin.domain.com

    DocumentRoot /var/www/vhots/admin.domain.com/htdocs
            <Directory /var/www/vhosts/admin.domain.com/htdocs>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>


    ErrorLog /var/www/vhosts/admin.domain.com/log/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/www/vhosts/admin.domain.com/log/access.log combined
    ServerSignature On
  </VirtualHost>

因此读完之后我取消了最初放在这里的 NameVirtualHost *:8858 的注释,这样我就同时拥有 NameVirtualHost * 和 NameVirtualHost *:8858,现在我收到一条警告消息,但服务器拒绝启动

NameVirtualHost *:8858 没有 VirtualHosts httpd (pid 27536?) 未运行 [警告] NameVirtualHost *:8858 没有 VirtualHosts [失败]

我该如何才能勃起?感谢您阅读此文

答案1

答案2

如果您已经在端口 80 上运行 Tomcat,则无法将 Apache 连接到同一端口。没有端口的 HTTP URL,例如http://admin.domain.com,假定端口为 80。

因此,为了使您的网站无需端口 (:8858) 即可访问,您需要将 Tomcat 移动到另一个端口。

如果同一台服务器上有 2 个 IP 地址,例如 xxx1 和 xxx2,还有另一种解决方案。然后使用以下命令将 Tomcat 指向第一个地址,将 Apache 指向第二个地址:

# Apache configuration
NameVirtualHost x.x.x.2:80

<VirtualHost x.x.x.2:80>
 #Your site configuration
</virtualHost>

在这种情况下,请不要忘记重新指向正确的 DNS 条目。

相关内容