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、分别访问网站查看验证结果

  • 相关阅读:
    开机启动服务(ftp、apache、mysql)
    ElasticSearch + Canal 开发千万级的实时搜索系统【转】
    filebeat 报错 Unable to create runner due to error: Can only start a prospector when all related states are finished
    linux挂载 mount
    cas单点登录原理
    SpringBoot项目集成cas单点登录
    注解@Slf4j的作用
    Java操作Redis
    CentOS下firewalld添加开放端口
    Prometheus Querying Function rate() vs irate()
  • 原文地址:https://www.cnblogs.com/heiwa-0924/p/11816932.html
Copyright © 2011-2022 走看看