Apache服务(基于IP地址,主机名,端口号)

安装Apache服务程序html

 

须要注意apache服务程序的软件包名称叫作httpd,所以直接执行yum install apache则是错误的。linux

[root@liuxuanke-hbza ~]# yum install httpd*apache

使用Vim编辑器建立Yum仓库的配置文件:vim

[root@liuxuanke-hbza ~]# vim /etc/yum.repos.d/rhel7.repocentos

[rhel7]安全

name=rhel7服务器

baseurl=file:///media/cdromtcp

enabled=1编辑器

gpgcheck=0ide

运行Apache服务程序并设置为开机启动

启动Apache服务程序:

[root@liuxuanke-hbza ~]# systemctl start httpd

设置为开机自启动:

[root@liuxuanke-hbza ~]# systemctl enable httpd

基于IP地址

一台服务器拥有多个IP地址,当用户访问不一样IP地址时显示不一样的网站页面。

一、使用nmtui命令为网卡添加多个IP地址(192.168.10.100/110/120):

从新启动网卡设备后使用ping命令检查是否配置正确(这项很重要,必定要测试好再进行下一步!

二、分别建立网站数据目录

/home/wwwroot目录下分别建立三个网站数据目录:

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/100

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/110

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/120

分别在这三个网站数据目录中写入主页文件,内容为该网站的IP地址:

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.100" > /home/wwwroot/100/index.html

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.110" > /home/wwwroot/110/index.html

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.120" > /home/wwwroot/120/index.html

三、在配置文件(/etc/httpd/conf/httpd.conf)中描述基于主机名称的虚拟主机

 

 四、修改网站数据目录的SELinux安全上下文

 

 当即恢复SELinux安全上下文:

[root@liuxuanke-hbza ~]# restorecon -Rv /home/wwwroot

重启服务

[root@liuxuanke-hbza ~]# systemctl restart httpd

分别访问一下,验证结果

 

 

完成本次实验以后请还原虚拟机在进行如下实验

 

基于主机名

 当服务器没法为每一个网站都分配到独立IP地址时,能够试试让Apache服务程序自动识别来源主机名或域名而后跳转到指定的网站。

一、配置网卡IP地址与hosts文件

hosts文件做用是定义IP地址与主机名的映射关系,即强制将某个主机名地址解析到指定的IP地址

[root@liuxuanke-hbza ~]# vim /etc/hosts

//每行只能写一条,格式为IP地址+空格+主机名(域名)。

192.168.10.100 www.centos.com

192.168.10.100 bbs.centos.com

192.168.10.100 tech.centos.com

二、分别建立网站数据目录

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/www

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/bbs

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/tech

分别在网站目录中写入不一样的首页文件:

[root@liuxuanke-hbza ~]# echo "www.centos.com" > /home/wwwroot/www/index.html

[root@liuxuanke-hbza ~]# echo "bbs.centos.com" > /home/wwwroot/bbs/index.html

[root@liuxuanke-hbza ~]# echo "tech.centos.com" > /home/wwwroot/tech/index.html

三、在配置文件中描述基于主机名称的虚拟主机

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/www"

ServerName "www.centos.com"

<Directory "/home/wwwroot/www">

AllowOverride None

Require all granted

</directory>

</VirtualHost>

 

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/bbs"

ServerName "bbs.centos.com"

<Directory "/home/wwwroot/bbs">

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

 

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/tech"

ServerName "tech.centos.com"

<Directory "/home/wwwroot/tech">

AllowOverride None

Require all granted

</directory>

</VirtualHost>

 

 

重启服务

[root@liuxuanke-hbza ~]# systemctl restart httpd

设置为开机自启动:

[root@liuxuanke-hbza ~]# systemctl enable httpd

五、分别访问网站验证结果

 

请注意还原虚拟机快照再进行下一个实验,不然可能致使配置文件冲突而报错。

 

基于端口号

咱们可让服务器开启多个服务端口后,而后让用户可以经过访问服务器的指定端口来找到想要的网站。

一、配置服务器的IP地址

二、分别建立网站数据目录

分别建立端口为6111,6222的网站数据目录:

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/6111

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/6222

分别在网站数据目录中写入不一样内容的主页文件:

[root@liuxuanke-hbza ~]# echo "port:6111" > /home/wwwroot/6111/index.html

[root@liuxuanke-hbza ~]# echo "port:6222" > /home/wwwroot/6222/index.html

 

 

 

 

 三、在配置文件中描述基于端口号的虚拟主机

编辑主配置文件(/etc/httpd/conf/httpd.conf),找到约在42行的Listen 80,并在下面追加:

Listen 6111
Listen 6222

而后在主配置文件的末尾按下面格式定义虚拟主机信息:

<VirtualHost 192.168.10.10:6111>
DocumentRoot ''/home/wwwroot/6111"
ServerName www.linuxprobe.com
<Directory "/home/wwwroot/6111''>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.10:6222>
DocumentRoot "/home/wwwroot/6222"
ServerName bbs.linuxprobe.com
<Directory "/home/wwwroot/6222">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

修改完后,记得重启服务

出现了错误这是由于SELinux服务检测到6111与6222端口本来并不属于Apache服务端口,但如今却被以Apache的名义监听了

四、修改网站数据目录的SELinux安全上下文并容许端口监听

让新的SElinux安全上下文当即生效:

[root@liuxuanke-hbza ~]# restorecon -Rv /home/wwwroot/

使用semanage命令搜索在SELinux系统中有关http服务的端口号:

[root@liuxuanke-hbza ~]# semanage port -l| grep http

默认的端口号中没有6111 、6222,因此须要添加

[root@liuxuanke-hbza ~]# semanage port -a -t http_port_t -p tcp 6111

[root@liuxuanke-hbza ~]# semanage port -a -t http_port_t -p tcp 6222

再来看下SELinux的端口规则(已经添加成功了):

 再尝试启动服务程序就没有问题了 systemctl restart httpd

五、分别访问网站查看验证结果

相关文章
相关标签/搜索