海上月是天上月

"虚拟主机的根目录必须有other用户的4+1(r+x)权限不然会没有权限访问"

0.检查语法

      httpd -t 测试配置文件的语法是否正确

1.安装

      yum install httpd -y

2.开机自启动

      systemctl enable httpd

3.关闭selinux

      临时关闭

      setenforce 0

      永久关闭

      vi /etc/selinux/config

      SELINUX=disabled

3.配置

      服务目录       /etc/httpd

      主配置文件     /etc/httpd/conf/httpd.conf

      网站数据目录   /var/www/html

      访问日志      /var/log/httpd/access_log

      错误日志     /var/log/httpd/error_log

     

      创建网站主目录

      mkdir -p /www/8080

      #递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

     

4.配置主配置文件

      vi /etc/httpd/conf/httpd.conf

 

      ServerRoot  服务目录

      ServerAdmin  管理员邮箱

      User  运行服务的用户

      Group  运行服务的用户组

      ServerName  网站服务器的域名

      DocumentRoot  网站数据目录

      Directory 网站数据目录的权限

      Listen  监听的 IP 地址与端口号

      DirectoryIndex  默认的索引页页面

      ErrorLog  错误日志文件

      CustomLog  访问日志文件

      Timeout  网页超时时间,默认为 300 秒

     

      1.查看IncludeOptional conf.d/*.conf是否开启(加载conf.d/下面所有*.conf文件的配置)

      2.修改(这些指令作用于该目录以及它的子目录

      <Directory />

           AllowOverride none

             #Require all denied

           Require all granted

      </Directory>

      AllowOverride参数就是指明Apache服务器是否去找.htaccess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。

     

      访问控制

      1. Order 指令

      order指令用于指定执行允许(allow)访问控制规则或者拒绝(deny)访问控制规则的顺序。 order只能设置为Order allow,deny或Order deny,allow。

 

      Order allow,deny:缺省禁止所有客户机的访问,且 Allow 语句在 Deny 语句之前被匹配。如果某条件既匹配 Deny 语句又匹配 Allow 语句,则 Deny 语句会起      作用(因为 Deny 语句覆盖了 Allow 语句)。

        Order deny,allow:缺省允许所有客户机的访问,且 Deny 语句在 Allow 语句之前被匹配。如果某条件既匹配 Deny 语句又匹配 Allow 语句,则 Allow 语句会起作用(因为 Allow 语句覆盖了 Deny 语句)。

 

      Allow 和 Deny 语句可以针对客户机的域名或IP地址进行设置,以决定哪些客户机能够访问服务器。

      2. allow 指令

 

      指明允许访问的地址或地址序列。如allow from all指令表明允许所有IP来的访问请求。

      3. deny 指令

 

      指明禁止访问的地址或地址序列。如deny from all指令表明禁止所有IP来的访问    请求。 在下面的例子中,80note.com 域中所有主机都允许访问网站,而其他非该域中的任何主机访问都被拒绝,因为 Deny 在前,Allow 在后,Allow 语句覆盖了Deny 语句:

 

      Order Deny,Allow

      Deny from all

      Allow from 80note.com

 

      下面例子中,80note.com 域中所有主机,除了db.80note.com 子域包含的主机被   拒绝访问以外,都允许访问。而所有不在 80note.com 域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问(Allow在前,Deny在后,Deny语句覆盖了Allow语句):

 

      Order Allow,Deny

      Allow from 80note.com

      Deny from db.80note.com

 

      4. Require  指令

      Require all granted 无条件允许访问。

      Require all denied 无条件拒绝访问。

     

     

5.虚拟主机(多ip)

      添加多个ip

      vi /etc/sysconfig/network-scripts/ifcfg-eth0

      格式:

      IPADDR=192.168.1.200

      IPADDR1=192.168.1.201

      IPADDR2=192.168.1.201

      ......

     

      cd /etc/httpd/conf.d/

      vi vhost.conf

       <VirtualHost 192.168.1.200:8080>

          DocumentRoot /www/8080

      </VirtualHost>

      <VirtualHost 192.168.1.201:8080>

          DocumentRoot /www/8081

      </VirtualHost>

 

      测试:

      访问192.168.1.200:8080

      访问192.168.1.201:8080

6.虚拟主机(多端口)

      监听多个端口

      vi /etc/httpd/conf/httpd.conf

      格式:

      Listen 8080

      Listen 8081

      Listen 8082

      ......

      vi vhost.conf

      <VirtualHost 192.168.1.200:8080>

          DocumentRoot /www/8080

      </VirtualHost>

      <VirtualHost 192.168.1.200:8081>

          DocumentRoot /www/8081

      </VirtualHost>

 

      测试:

      访问192.168.1.200:8080

      访问192.168.1.200:8081

7.虚拟主机(多域名)

      设置本地hosts

      windows

      C:\Windows\System32\drivers\etc\hosts

格式:ip   域名

      192.168.1.200   a.com

      192.168.1.200   b.com

     

      立即生效

      ipconfig/flushdns

     

      linux

      vi /etc/hosts

格式:ip   域名

      192.168.1.200   a.com

      192.168.1.200   b.com

     

      立即生效

      systemctl restart network

 

      <VirtualHost 192.168.1.200:8080>

          DocumentRoot /www/8080

          servername a.com

      </VirtualHost>

      <VirtualHost 192.168.1.200:8080>

          DocumentRoot /www/8081

          servername b.com

      </VirtualHost>

     

测试:

      访问 a.com:8080

      访问 b.com:8080

8.虚拟目录

      vi /etc/httpd/conf/httpd.conf

      添加

      Alias /testa "/www/8080/"

      Alias /testb "/www/8081/"

      通过http://192.168.1.200/testa访问/www/8080/

posted @ 2023-04-01 15:02  WaitAyaka  阅读(101)  评论(0)    收藏  举报