CentOS7配置httpd虚拟主机教程
<p>本实验旨在centos7系统中,httpd-2.4配置两台虚拟主机,主要有以下要求:</p>
<p>
(1) 提供两个基于名称的虚拟主机:</p>
<p>
www1.stux.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;<br>
www2.stux.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;</p>
<p>
(2) 通过www1.stux.com/server-status输出其状态信息,且要求只允许提供账号的用户访问;</p>
<p>
(3) www1不允许192.168.1.0/24网络中的主机访问; </p>
<p>
查看系统版本和httpd版本</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_480582">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$httpd -</code><code class="bash functions">v</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">server version: apache</code><code class="bash plain">/2</code><code class="bash plain">.4.6 (centos)</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">server built: nov 14 2016 18:04:44</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">$</code><code class="bash functions">cat</code> <code class="bash plain">/etc/centos-release</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">centos linux release 7.3.1611 (core)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动httpd,测试能否正常运行</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_227101">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$systemctl start httpd.service </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$systemctl status httpd.service </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">● httpd.service - the apache http server</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash plain">loaded: loaded (</code><code class="bash plain">/usr/lib/systemd/system/httpd</code><code class="bash plain">.service; enabled; vendor preset: disabled)</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">active: active (running) since thu 2017-06-01 03:03:12 cst; 5s ago </code><code class="bash comments"># active 表示正常运行</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code><code class="bash plain">docs: </code><code class="bash functions">man</code><code class="bash plain">:httpd(8)</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash spaces"> </code><code class="bash functions">man</code><code class="bash plain">:apachectl(8)</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code><code class="bash plain">process: 6473 execstop=</code><code class="bash plain">/bin/kill</code> <code class="bash plain">-winch ${mainpid} (code=exited, status=0</code><code class="bash plain">/success</code><code class="bash plain">)</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash spaces"> </code><code class="bash plain">main pid: 6485 (httpd)</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code><code class="bash plain">status: </code><code class="bash string">"processing requests..."</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash spaces"> </code><code class="bash plain">cgroup: </code><code class="bash plain">/system</code><code class="bash plain">.slice</code><code class="bash plain">/httpd</code><code class="bash plain">.service</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code><code class="bash plain">├─6485 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash spaces"> </code><code class="bash plain">├─6486 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash spaces"> </code><code class="bash plain">├─6487 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash spaces"> </code><code class="bash plain">├─6489 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash spaces"> </code><code class="bash plain">├─6490 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash spaces"> </code><code class="bash plain">└─6572 </code><code class="bash plain">/usr/sbin/httpd</code> <code class="bash plain">-dforeground</code>
</div>
<div class="line number18 index17 alt1">
</div>
<div class="line number19 index18 alt2">
<code class="bash plain">jun 01 03:03:11 host systemd: starting the apache http server...</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash plain">jun 01 03:03:12 host systemd: started the apache http server.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
使用curl命令访问</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_831449">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ip a show ens38 </code><code class="bash comments"># 查看ip </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">3: ens38: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up qlen 1000</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash spaces"> </code><code class="bash plain">link</code><code class="bash plain">/ether</code> <code class="bash plain">00:0c:29:</code><code class="bash functions">dc</code><code class="bash plain">:18:5f brd ff:ff:ff:ff:ff:ff</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash plain">inet 192.168.55.128</code><code class="bash plain">/24</code> <code class="bash plain">brd 192.168.55.255 scope global dynamic ens38</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">valid_lft 1752sec preferred_lft 1752sec</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code><code class="bash plain">inet6 fe80::20c:29ff:fedc:185f</code><code class="bash plain">/64</code> <code class="bash plain">scope link </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash spaces"> </code><code class="bash plain">valid_lft forever preferred_lft forever</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">$curl http:</code><code class="bash plain">//192</code><code class="bash plain">.168.55.128 </code><code class="bash comments"># 访问</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain"><!doctype></code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain"><h1></code>
</div>
<div class="line number11 index10 alt2">
<code class="bash spaces"> </code><code class="bash plain">centos 7.3</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain"><</code><code class="bash plain">/h1</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
创建指定文件目录</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_650582">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$</code><code class="bash functions">mkdir</code> <code class="bash plain">-pv </code><code class="bash plain">/web/vhosts/www1</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$</code><code class="bash functions">mkdir</code> <code class="bash plain">-pv </code><code class="bash plain">/web/vhosts/www2</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">$</code><code class="bash functions">mkdir</code> <code class="bash plain">-pv </code><code class="bash plain">/var/log/httpd/www2</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">$</code><code class="bash functions">mkdir</code> <code class="bash plain">-pv </code><code class="bash plain">/var/log/httpd/www1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
根据要求填写虚拟主机配置信息</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_426791">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># path /etc/httpd/conf.d/vir.conf # 配置文件全路径</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments">#virtual host 1 # 虚拟主机1的配置</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"><virtualhost 192.168.55.128:80></code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash plain">errorlog </code><code class="bash string">"/var/log/httpd/www1/error_log"</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">customlog </code><code class="bash string">"/var/log/httpd/www1/access_log"</code> <code class="bash plain">combined</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code><code class="bash plain"><location </code><code class="bash plain">/server-status</code><code class="bash plain">></code>
</div>
<div class="line number7 index6 alt2">
<code class="bash spaces"> </code><code class="bash plain">sethandler server-status</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code><code class="bash plain"><</code><code class="bash plain">/location</code><code class="bash plain">></code>
</div>
<div class="line number9 index8 alt2">
<code class="bash spaces"> </code><code class="bash plain"><directory </code><code class="bash plain">/web/vhosts/www1</code><code class="bash plain">></code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code><code class="bash plain"><requireall></code>
</div>
<div class="line number11 index10 alt2">
<code class="bash spaces"> </code><code class="bash plain">require all granted</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code><code class="bash plain">require not ip 192.168.1</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash spaces"> </code><code class="bash plain"><</code><code class="bash plain">/requireall</code><code class="bash plain">></code>
</div>
<div class="line number14 index13 alt1">
<code class="bash spaces"> </code><code class="bash plain"><</code><code class="bash plain">/directory</code><code class="bash plain">></code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain"><</code><code class="bash plain">/virtualhost</code><code class="bash plain">></code>
</div>
<div class="line number16 index15 alt1">
<code class="bash comments"># virtual host 2 # 虚拟主机2的配置</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain"><virtualhost 192.168.55.128:80></code>
</div>
<div class="line number18 index17 alt1">
<code class="bash spaces"> </code><code class="bash plain">servername www2.stux.com</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash spaces"> </code><code class="bash plain">documentroot </code><code class="bash string">"/web/vhosts/www2"</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash spaces"> </code><code class="bash plain">errorlog </code><code class="bash string">"/var/log/httpd/www2/error_log"</code>
</div>
<div class="line number21 index20 alt2">
<code class="bash spaces"> </code><code class="bash plain">customlog </code><code class="bash string">"/var/log/httpd/www2/access_log"</code> <code class="bash plain">combined</code>
</div>
<div class="line number22 index21 alt1">
<code class="bash spaces"> </code><code class="bash plain"><directory </code><code class="bash plain">/web/vhosts/www2</code><code class="bash plain">></code>
</div>
<div class="line number23 index22 alt2">
<code class="bash spaces"> </code><code class="bash plain"><requireall></code>
</div>
<div class="line number24 index23 alt1">
<code class="bash spaces"> </code><code class="bash plain"> require all granted</code>
</div>
<div class="line number25 index24 alt2">
<code class="bash spaces"> </code><code class="bash plain"><</code><code class="bash plain">/requireall</code><code class="bash plain">></code>
</div>
<div class="line number26 index25 alt1">
<code class="bash spaces"> </code><code class="bash plain"><</code><code class="bash plain">/directory</code><code class="bash plain">></code>
</div>
<div class="line number27 index26 alt2">
<code class="bash plain"><</code><code class="bash plain">/virtualhost</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
创建www1和www2的index页面</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_555672">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$</code><code class="bash functions">cat</code> <code class="bash plain">/web/vhosts/www1/index</code><code class="bash plain">.html</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">welcome to www1</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">thank you</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">$</code><code class="bash functions">cat</code> <code class="bash plain">/web/vhosts/www2/index</code><code class="bash plain">.html </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">welcome to www2</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">thank you</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
重载httpd配置文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_304351">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$httpd -t</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">syntax ok</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">$systemctl reload httpd.service </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
修改客户端主机的hosts文件,以便能解析域名</p>
<p>
hosts在windows环境下的路径为c:\windows\system32\drivers\etc。在该文件中添加两行</p>
<p>
192.168.55.128 www1.stux.com<br>
192.168.55.128 www2.stux.com</p>
<p>
访问结果</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOS7配置httpd虚拟主机教程" alt="CentOS7配置httpd虚拟主机教程" src="https://zhuji.jb51.net/uploads/img/202305/194716b3a14f73214649cbce8022cf7d.jpg"></p>
<p>
图1、访问www1站点</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOS7配置httpd虚拟主机教程" alt="CentOS7配置httpd虚拟主机教程" src="https://zhuji.jb51.net/uploads/img/202305/1fc2245a11feade9602afa7980b6ddaa.jpg"></p>
<p>
图2、访问www2站点</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOS7配置httpd虚拟主机教程" alt="CentOS7配置httpd虚拟主机教程" src="https://zhuji.jb51.net/uploads/img/202305/59e8b1f742d7934a38d4a69f7cb4f52e.jpg"></p>
<p>
图3、查看www1站点的访问状态——正常</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOS7配置httpd虚拟主机教程" alt="CentOS7配置httpd虚拟主机教程" src="https://zhuji.jb51.net/uploads/img/202305/e216df426d6bdd78d3279c96d49a5e97.jpg"></p>
<p>
图4、查看www2站点的访问状态错误</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
頁:
[1]