歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> SUSE11-Linux架設apache虛擬主機

SUSE11-Linux架設apache虛擬主機

日期:2017/3/3 16:37:16   编辑:關於Linux

Linux提供HTTP服務的組件是apache,現在SUSE11自帶的組件版本是apache2。

先說一下架設環境

硬件:虛擬機

IP地址:192.168.1.102

主機名:robinzs

首先安裝組件,圖形界面或字符界面亦可。

zypper install –y apache2

suse的zypper與redhat的yum功能類似,前題是都需設置好安裝源,因為是拿虛擬機做的測試,所以我的安裝源是鏡像。

安裝之後開始部署,為什麼要部署虛擬主機。因為虛擬主機能夠架設多個站點在同一台服務器,且都可以從80端口通迅數據,所以本次實驗部署虛擬主機

Apache2的配置文件目錄在/etc/apache2/下,需用到的文件有:

/etc/apache2/httpd.conf 主配置文件

/etc/apache2/listen.conf 監聽端口配置文件

/etc/apache2/vhosts.d/*.conf 虛擬主機配置文件

說到這裡簡單提一下suse11下的apache2目錄結構。與紅帽不同,紅帽是將 大部份配置文件內容都在httpd.conf中;而suse11的apache2是將httpd.conf 文件打散成若個文件,在httpd.conf中有Include標簽可以加載打散這些文件的內容,所以在suse11下配置站點需要修改多個文件。

現在開始配置apache2,首先在/etc/apache2/vhosts.d/目錄下創建文件*.conf, 文件名隨便,可以以站點域名命名,我創建的叫virtual1.conf與virutual2.conf

vim /etc/apache2/vhosts.d/virtual1.conf

添加如下內容:(添加的內容可以參考同級目錄下的vhost.template文件)

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /srv/www/htdocs/virtual1/

ServerName virtual1.robinzs.com

ErrorLog /var/log/apache2/virtual1/error_log

CustomLog /var/log/apache2/virtual1/access_log combined
</VirtualHost>

上述配置文件內容與虛擬主機創建要求一一對應:

ServerAadmin—虛擬主機管理員郵箱

DocumentRoot—虛擬主機文件目錄

ServerName—服務名稱,就是訪問地址

ErrorLog—錯誤日志

CustomLog—訪問日志,combined是日志格式的一種,兼容所有日志格式

用同樣方法配置virtual2.conf文件

修改apache2的主配置文件添加站點信息

vim /etc/apache2/httpd.conf

找到Include /etc/apache2/vhosts.d/*.conf這一行,這一行是代表加載所有虛擬主機配置信息。

在這一行下邊添加:(其不在這裡寫也行,為了維護方便)

<Directory "/srv/www/htdocs/virtual1/">
Options Indexes FollowSymlinks
AllowOverried All
Order allow,deny
Allow from all
</Directory>
<Directory "/srv/www/htdocs/virtual2/">
Options Indexes FollowSymlinks
AllowOverried All
Order allow,deny
Allow from all
</Directory>

在<Director>內是對站點內容的權限設置:

Options-站點目錄的權限設置

Indexes-如果在此目錄下找不到"首頁文件",就列出整個目錄的文件,相反如果不例出目錄文件則為-Indexes;

FollowSymLinks-讓在此目錄開放的連接文件可以連接出此目錄外。

Allow Overried-表示是否允許額外配文件".htaccess"的權限復寫,用戶自己的個人網頁若要修改權限時會用到。

Order -安全設置,是否可被浏覽的權限,默認為allow,deny以allow優先處理,沒有寫入規則的默認為deny即不可浏覽,allow見下述。

Allow from-默認為all,即全部客戶都可浏覽

其實上述內容不寫在httpd.conf,寫在vhost.conf內也可以:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName virtual1.robinzs.com
DocumentRoot /srv/www/vhosts/
<Directory "/srv/www/vhosts/">
Options All
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

但如此做,有可能會出現無法訪問的問題,也許會花長時間排錯,自己測試無所謂。在生產環境我們應選擇安全的方法來完工作,所以此配置方法不建議。

創建相應站點文件與目錄

a 虛擬主機站點目錄

mkdir /srv/www/htdocs/virtual1

mkdir /srv/www/htdocs/virtual2

b 虛擬主機主頁

vim /srv/www/htdocs/virtual1/index.html

vim /srv/www/htdocs/virtual2/index.html

內容隨便,為了方便我沒用html寫,直接就寫的Test1 for virtual1與Test2 for virtual2

c 日志目錄

mkdir /var/log/apache2/virtual1

mkdir /var/log/apache2/virtual2

修改/etc/hosts文件

添加內容:

192.168.1.102 virtual1.robinzs.com

192.168.1.102 virtual2.robinzs.com

因為兩個虛擬主機都用的是80端口訪問,上述操作都做完之後並不能正常訪問,只能訪問 virtual1.robinzs.com的頁面,輸入virtual2.robinzs.com也是一樣.這時需要修改參數使所有虛擬主機都能夠使用80端口.

修改/etc/apache/listen.conf文件

將NameVirtualHost *:80的注釋去掉即可.

這裡順道提一句apache2的訪問優先級。當有外部訪問需求進來時,apache2優先會訪問第一個虛擬主機;如果訪問域名是其它虛擬主機則會指向該域名的虛擬主機,若該訪問域名的虛擬主機不存在,則會指向第一個虛擬主機;如果沒有虛擬主機才會指向默認站點!

重啟服務

rcapache2 restart

設置apaceh2開機自啟

chkconfig apache2 on

用浏覽器訪問測試

輸入域名

virtual1.robinzs.com

virtual2.robinzs.com

輸入IP

本文出自 “滄海桦桑自得造化” 博客,請務必保留此出處http://robinzs.blog.51cto.com/2834668/1178637

Copyright © Linux教程網 All Rights Reserved