• linux apache虚拟主机配置(基于ip,端口,域名)


    配置环境:

    linux版本:Centos6.4

    httpd版本:

    [root@centos64Study init.d]# pwd
    /etc/init.d
    [root@centos64Study init.d]# httpd -v
    Server version: Apache/2.2.15 (Unix)
    Server built: Oct 19 2017 16:43:38

    1,安装httpd服务

    yum install httpd -y

    2,关闭selinux和防火墙

    临时设置selinux为permissive( disabled )状态

    [root@centos64Study ~]# getenforce

    Enforcing

    [root@centos64Study ~]# setenforce 0

    [root@centos64Study ~]# getenforce

    Permissive

    永久修改方法:

    [root@centos64Study ~]# vim /etc/sysconfig/selinux

    SELINUX=permissive

    3,关闭防火墙

    service iptables stop

    第一种,基于多ip访问的配置:

    1,先把httpd.conf备份一下,以防出错,可以恢复

    httpd.conf的文件路径( /etc/httpd/conf )

    [root@centos64Study conf]# ls
    httpd.conf httpd.conf.bak magic

    2,如果需要启用虚拟主机配置,在文件httpd.conf中,先把中心主机的配置注释

    #DocumentRoot "/var/www/html"

    3,在httpd.conf中,会默认包conf.d目录中的所有 以.conf结尾的配置文件

    Include conf.d/*.conf

    所以,把虚拟主机的配置文件独立出来放在conf.d目录下

    [root@centos64Study httpd]# ls
    conf conf.d logs modules run
    [root@centos64Study httpd]# pwd
    /etc/httpd

    [root@centos64Study httpd]# cd conf.d
    [root@centos64Study conf.d]# pwd
    /etc/httpd/conf.d
    [root@centos64Study conf.d]# ls
    README VirtualHost.conf welcome.conf

     

    VirtualHost.conf 配置文件内容:

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.com
    DocumentRoot "/www/7mxt.com"
    </VirtualHost>


    <VirtualHost 192.168.1.2:80>
    ServerName www.7mxt.net
    DocumentRoot "/www/7mxt.net"
    </VirtualHost>

    我的主机ip是192.168.1.8,添加另一个ip:

     ip addr add 192.168.1.2/24 dev eth0

    在对应的目录建立文件:

    [root@centos64Study www]# tree
    .
    ├── 7mxt.com
    │   └── index.html
    └── 7mxt.net
      └── index.html

    重启服务: service httpd restart,在浏览器中分别用这两个ip访问,就能看到对应的页面

    第二种,基于多端口访问的配置:

    1,在VirtualHost.conf中增加一项配置:

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.com
    DocumentRoot "/www/7mxt.com"
    </VirtualHost>
    <VirtualHost 192.168.1.2:80>
    ServerName www.7mxt.net
    DocumentRoot "/www/7mxt.net"
    </VirtualHost>
    <VirtualHost 192.168.1.2:8080>
    ServerName www.abc.net
    DocumentRoot "/www/abc.net"
    </VirtualHost>

    2,在httpd.conf监听8080端口

    Listen 80
    Listen 8080

    3,/www建立对应的目录和文件

    重启服务: service httpd restart,在浏览器中用http://192.168.1.2:8080/  就能访问到abc.net目录下面的文件index.html内容

    [root@centos64Study www]# tree
    .
    ├── 7mxt.com
    │   └── index.html
    ├── 7mxt.net
    │   └── index.html
    └── abc.net
      └── index.html

    第三种:基于域名的主机配置

    1,NameVirtualHost:指定192.168.1.8:80这个ip地址使用域名解释

    NameVirtualHost 192.168.1.8:80

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.com
    DocumentRoot "/www/7mxt.com"
    </VirtualHost>

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.org
    DocumentRoot "/www/7mxt.org"
    </VirtualHost>

    <VirtualHost 192.168.1.2:80>
    ServerName www.7mxt.net
    DocumentRoot "/www/7mxt.net"
    </VirtualHost>

    <VirtualHost 192.168.1.2:8080>
    ServerName www.abc.net
    DocumentRoot "/www/abc.net"
    </VirtualHost>

    2,在对应的目录下建立文件

    [root@centos64Study www]# tree
    .
    ├── 7mxt.com
    │   └── index.html
    ├── 7mxt.net
    │   └── index.html
    ├── 7mxt.org
    │   └── index.html
    └── abc.net
      └── index.html

    3,在windows host文件中增加主机映射配置

    【C:WindowsSystem32driversetc】

    192.168.1.8 www.7mxt.com
    192.168.1.8 www.7mxt.org

    4,重启服务: service httpd restart,分别用域名www.7mxt.com, www.7mxt.org就能访问到对应的文件内容

    使用ip: 192.168.1.8返回的是第一个虚拟主机的配置,即:www.7mxt.com对应目录下面的内容

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    更详细的配置信息:

    NameVirtualHost 192.168.1.8:80

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.com
    DocumentRoot "/www/7mxt.com"
    CustomLog /var/log/httpd/7mxt.com/access_log combined
    <Directory "/www/7mxt.com">
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Restricted Site..."
    AuthUserFile "/etc/httpd/conf/htpasswd"
    AuthGroupFile "/etc/httpd/conf/htgroup"
    #Require user tom
    Require group myusers
    #Require valid-user
    </Directory>
    </VirtualHost>

    <VirtualHost 192.168.1.8:80>
    ServerName www.7mxt.org
    DocumentRoot "/www/7mxt.org"
    CustomLog /var/log/httpd/7mxt.org/access_log combined
    </VirtualHost>

    <VirtualHost 192.168.1.2:80>
    ServerName www.7mxt.net
    DocumentRoot "/www/7mxt.net"

    <VirtualHost 192.168.1.2:80>
    ServerName www.7mxt.net
    DocumentRoot "/www/7mxt.net"
    CustomLog /var/log/httpd/7mxt.net/access_log combined
    <Directory "/www/7mxt.net">
    Options none
    AllowOverride none
    Order deny,allow
    Deny from 192.168.1.100
    </Directory>
    </VirtualHost>

    <VirtualHost 192.168.1.2:8080>
    ServerName www.abc.net
    DocumentRoot "/www/abc.net"
    </VirtualHost>

    1,www.7mxt.com这个域名下面的Directory配置为   需要用户验证,支持3种情况的配置:

    。只允许某个用户访问

    。只允许文件中的用户

    。只允许组文件中定义的用户

    AllowOverride AuthConfig:  需要授权
    AuthType Basic:基本授权
    AuthName "Restricted Site..." :授权说明
    AuthUserFile "/etc/httpd/conf/htpasswd"   :  需要授权的用户 保存在这个文件中,这个文件中的内容用

    htpasswd这个命令创建,第一次带参数c表示创建,第二次不需要带c

    htpasswd -c -m /etc/httpd/conf/htpasswd ghost
    htpasswd -m /etc/httpd/conf/htpasswd ghostwu

    AuthGroupFile "/etc/httpd/conf/htgroup": 需要授权的用户保存在这个文件中

    #Require user ghost:只允许ghost这个用户登录

    Require group myusers: 只允许myusers这个组中的用户登录
    #Require valid-user:只允许htpasswd这个文件中定义的用户登录

    [root@centos64Study conf]# ls
    htgroup htpasswd httpd.conf httpd.conf.bak magic
    [root@centos64Study conf]# cat htgroup
    myusers: ghost ghostwu
    [root@centos64Study conf]# cat htpasswd
    ghost:$apr1$IeKI2YLO$RX8EjYBoHbMzCkHocFK0l/
    ghostwu:$apr1$LoA/O0i0$0/EJu3xTXo2yCMimMUAcQ.

    2,CustomLog /var/log/httpd/7mxt.org/access_log combined

    自定义访问日志的文件路径,【注意:需要在/var/log/httpd下面存在7mxt.org这个目录】

    3,

    <Directory "/www/7mxt.net">
    Options none
    AllowOverride none
    Order deny,allow
    Deny from 192.168.1.100
    </Directory>

    这个配置针对的是7mxt.net,禁止192.168.1.100访问7mxt.net,其他的ip都允许

  • 相关阅读:
    Traefik-v2.x快速入门
    jenkins pipeline持续集成
    phpstorm 2017激活码(方法)
    PHP保留两位小数的几种方法
    php 数组排序 按照某字段
    sql大全
    解决jpgraph在php7.0版本下时,无法显示例子图表的问题
    Linux 定时任务crontab使用
    VIM命令操作
    wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
  • 原文地址:https://www.cnblogs.com/ghostwu/p/7827104.html
Copyright © 2020-2023  润新知