Heim  >  Artikel  >  Backend-Entwicklung  >  Konfigurations- und Nutzungshandbuch für den virtuellen Apache-Host in Ubuntu

Konfigurations- und Nutzungshandbuch für den virtuellen Apache-Host in Ubuntu

伊谢尔伦
伊谢尔伦Original
2016-11-25 14:42:161104Durchsuche

Methoden zum Aktivieren und Deaktivieren von Websites

a2ensite 站点名
a2dissite 站点名

Namensbasierter (durch Domänennamen unterschiedener) virtueller Host

Nach der Installation von Apache gibt es standardmäßig einen virtuellen Host namens „Default“. Beim Erstellen eines neuen virtuellen Hosts können Sie die Konfigurationsdatei des standardmäßigen virtuellen Hosts direkt kopieren und darauf basierend die Konfigurationsparameter des neuen virtuellen Hosts ändern.

#copy /etc/apache2/site-available/default /etc/apache2/site-available/sitename

Testumgebung

Betriebssystem: Ubuntu Server 12.04 LTS

Adresse der Testmaschine: 10.39.6.59

Domänenname der Testmaschine: *. Beispiel .com

Grundkonfiguration

Wir alle wissen, dass wir namensbasierte virtuelle Hosts verwenden müssen, wenn wir mehrere Domänennamen oder Hostnamen auf einer einzelnen Maschine einrichten möchten. Wie richtet man es also ein? Das ist es, was dieser Leitfaden lösen soll. Die Hauptkonfigurationsdatei apache2.conf für Apache2 befindet sich im Verzeichnis /etc/apache2/ von Ubuntu. In dieser Datei können wir die folgenden Felder sehen:

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*(12.04版本里无[^.#]*)

Die Bedeutung dieser Zeile gibt an, dass die Datei den Dateinamen /etc/apache2/sites-enabled/ im Verzeichnis enthält, der nicht „.“ enthält. oder „#“ alle Dateien mit diesen beiden Zeichen. Wenn wir die Dateien in diesem Verzeichnis auflisten, stellen wir fest, dass es nur eine Softlink-Datei von 000-default gibt. Die tatsächliche Verbindung ist die Standarddatei im Verzeichnis /etc/apache2/sites-available Der Dateiname der Datei enthält weder „.“ noch „#“. Daher muss diese Datei natürlich in der Konfigurationsdatei apache2.conf enthalten sein. Öffnen Sie die Datei und stellen Sie fest, dass es sich tatsächlich um eine virtuelle Host-Konfigurationsdatei handelt. Da der virtuelle Host in der Datei jedoch * ist, handelt es sich tatsächlich um eine allgemeine Konfigurationsdatei. Wenn wir einen virtuellen Host erstellen möchten, müssen wir die Datei so ändern, dass sie wie folgt aussieht:

<VirtualHost *:80>
ServerName www.firehare.com
ServerAdmin admin@mail.firehare.com
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
# This directive allows us to have apache2&#39;s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</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>

Lassen Sie uns die Einstellungsanweisungen für den virtuellen Host in den obigen Einstellungen analysieren:

`NameVirtualHost :80`: Zeigt an, dass wir einen namensbasierten virtuellen Host erstellen möchten und der Überwachungsport 80 ist.

`a2445d15a37241fe08bac1f84a382b54 `: Darin dargestellt ist die Konfiguration eines virtuellen Hosts. Beachten Sie, dass Sie, wenn im obigen Feld eine Portnummer angegeben ist, diese auch hier angeben sollten

`ServerName www.firehare.com`: Legen Sie den Domänennamen des virtuellen Hosts fest. www.firehare.com kann eine beliebige Domäne sein Name, den Sie registriert haben

`ServerAdmin admin@mail.firehare.com`: Legen Sie die E-Mail-Adresse des Netzwerkadministrators des virtuellen Hosts fest

`DocumentRoot /var/www/`: Legen Sie das Home-Verzeichnis fest Pfad des virtuellen Hosts

`ErrorLog /var/log/apache2/error.log`: Legen Sie die Fehlerinformationen des virtuellen Hosts fest

`CustomLog /var/log/apache2/access. Protokoll kombiniert`: Legen Sie die Zugangsinformationen des virtuellen Hosts fest

Auf diese Weise haben wir einen virtuellen Host www.firehare.com konfiguriert. Da dies jedoch die Standardkonfiguration ist, werden Sie nach dem Neustart von Apache2 unabhängig davon, ob Sie einen Domänennamen eingeben, der auf diesen Host im DNS-Server verweist, zum Verzeichnis /var/www weitergeleitet, auf das die Standardkonfiguration von www.firehare verweist. com. Sofern der Domänenname beispielsweise nicht von anderen virtuellen Hostkonfigurationen verwendet wird, haben wir auch edunuke.firehare.com so konfiguriert, dass er auf diese Maschine verweist, und den entsprechenden virtuellen Host konfiguriert. In diesem Fall wird der Domänenname edunuke.firehare.com eingegeben in das Verzeichnis aufgenommen werden, das dem Domänennamen entspricht.

Weitere Erklärung

Zur Verdeutlichung fügen wir eine weitere virtuelle Host-Site example.com hinzu. Erstellen Sie zunächst eine Datei edunuke im Verzeichnis /etc/apache2/sites-available/ und bearbeiten Sie sie die Datei:

<VirtualHost *:80>
ServerName edunuke.example.com
ServerAdmin edunuke@mail.example.com
DocumentRoot "/var/www/edunuke/"
ErrorLog "/var/log/apache2/edunuke_errors.log"
CustomLog "/var/log/apache2/edunuke_accesses.log" common    
</VirtualHost>

Die spezifische Bedeutung der Einstellung ist ähnlich wie oben, daher werde ich nicht mehr dazu sagen. Führen Sie dann den Befehl aus:

sudo a2ensite edunuke

In diesem Fall wurde die virtuelle Hostseite edunuke.example.com installiert. Derzeit finden Sie auch einen zusätzlichen Softlink zu /etc/apache2/sites-available/edunuke im Verzeichnis /etc/apache2/sites-enabled/. Der nächste Schritt besteht darin, Apache2 neu zu starten, um die virtuelle Host-Site auszuführen:

sudo /etc/init.d/apache2 restart  这里可以使用reload 重新加载

Wenn Sie auf diese Weise edunuke.example.com im Browser eingeben, wird auf /var/www verwiesen Wenn Sie andere Domänennamen eingeben, die auf den lokalen Computer verweisen, wird in der Standardkonfiguration auf das Verzeichnis /var/www verwiesen. Freunde, die mit Apache2 vertraut sind, werden sich fragen, warum es so mühsam ist, es in eine Datei zu packen. Warum zwei Dateien verwenden? Es ist eigentlich ganz einfach, denn wenn ich die Edunuke-Site pflegen möchte, muss ich nur den Befehl ausführen:

sudo a2dissite edunuke
sudo /etc/init.d/apache2 restart

Auf diese Weise kann ich die Edunuke-Site pflegen, ohne den normalen Betrieb anderer Sites zu beeinträchtigen.

Erweiterte Konfiguration

上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone 的话,上面的这点设置是远远不够的,由于 Zope+Plone 结构所采用的端口并非是80端口,所以我们还得做端口重定向。为了能够做这个,我们得激活 Rewrite 和 Proxy 两个模块。激活模块很简单,同站点配置目录一样,在 Apache2 中也有两个模块配置目录:mods-available 和 mods-enabled。在 mods-available 目录中的是所有可用的模块,而在 mods-enabled 目录中的则是已被安装到 Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy 模块的配置引导文件,所以只需要简单地将其安装到 Apache2 中即可。使用命令:

sudo a2enmod rewrite
sudo a2enmod proxy

然后,添加虚拟主机站点 plone.example.com,同 edunuke 站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或 "#" 这两个字符的了。然后编辑该文件:

<VirtualHost plone.example.com:80>
ServerName plone.example.com
ServerAdmin plone@mail.example.com
ErrorLog "/var/log/apache2/plone_errors.log"
CustomLog "/var/log/apache2/plone_accesses.log" common
RewriteEngine on
RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P]
<Proxy *>
Order Deny,Allow
Deny from all
Allow from all
</Proxy>
</VirtualHost>

这样就安装好了 plone.example.com 虚拟主机站点,可以在浏览器中地址栏中输入 http://plone.example.com 就可以重定向到 Zope+Plone 站点去了。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Yii2.0 – ModulNächster Artikel:Yii2.0 – Modul