zoukankan      html  css  js  c++  java
  • Apache服务(基于IP地址,主机名,端口号)

    安装Apache服务程序

    需要注意apache服务程序的软件包名称叫做httpd,因此直接执行yum install apache则是错误的。

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

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

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

    [rhel7]

    name=rhel7

    baseurl=file:///media/cdrom

    enabled=1

    gpgcheck=0

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

    启动Apache服务程序:

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

    设置为开机自启动:

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

    基于IP地址

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

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

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

    2、分别创建网站数据目录

    /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

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

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

     

     立即恢复SELinux安全上下文:

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

    重启服务

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

    分别访问一下,验证结果

     

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

    基于主机名

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

    1、配置网卡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

    2、分别创建网站数据目录

    [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

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

    <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

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

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

    基于端口号

    我们可以让服务器开启多个服务端口后,然后让用户能够通过访问服务器的指定端口来找到想要的网站。

    1、配置服务器的IP地址

    2、分别创建网站数据目录

    分别创建端口为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

     

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

    编辑主配置文件(/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的名义监听了

    4、修改网站数据目录的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

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

  • 相关阅读:
    每日一水 POJ8道水题
    编译和使用 MySQL C++ Connector
    j2ee model1模型完成分页逻辑的实现 详解!
    DB查询分析器访问EXCEL时,要在表名前后加上中括弧或双引号
    指向结构体变量的指针
    EOSS V3.0 企业运营支撑系统(基于RBAC原理的权限管理)
    MybatisGen1.0 Mybatis JavaBean Mapper生成工具
    The table name must be enclosed in double quotation marks or sqare bracket while accessing EXCEL by
    资源-Android:Android
    软件-开发软件:Android Studio
  • 原文地址:https://www.cnblogs.com/heiwa-0924/p/11816932.html
Copyright © 2011-2022 走看看