Apache-2.2

ubuntu apache2 virtualhost 在埠上不同於 80 的正確配置是什麼

  • April 17, 2018

我剛剛繼承了一個伺服器 ubuntu 10.04,它已經在埠 80 上執行了 tomcat。所以 apache 2/etc/apache2/ports.conf有 Listen 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?) not running

###/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 sensei@domain.com
   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 has no VirtualHosts httpd (pid 27536?) not running

$$ warn $$NameVirtualHost *:8858 沒有 VirtualHosts $$ fail $$

我怎樣才能把它弄起來?感謝您閱讀本文

試試這個:

如果您已經在埠 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 條目重新指向正確。

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