美文网首页
Apache 服务器概述-安装-搭建 Web 网站服务器之前的环

Apache 服务器概述-安装-搭建 Web 网站服务器之前的环

作者: 学神来啦 | 来源:发表于2022-01-04 14:05 被阅读0次

    更多技术干货尽在公众号【学神来啦】!

    实现 Apache 打开软链接功能-禁止显示目录列表-用户认证

    当一个目录下没有默认首页时,访问 http://192.168.1.63/phpdata/禁止显示目录列表显示目录的效果:
    [root@xuegod63 ~]# cp -r /boot/grub/ /var/www/html/bbs/
    [root@xuegod63 ~]# ll /var/www/html/bbs/
    总用量 16
    drwxr-xr-x. 2 root root 27 2 月 2 2018 grub
    -rw-r--r-- 1 root root 26 11 月 19 10:22 index.html
    [root@xuegod63 ~]# rm -rf /var/www/html/bbs/index.html
    [root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf
     # Require all granted #取消注释
     <RequireALL> #注释以下 4 行
     Require ip 192.168.1.63
     Require not ip 192.168.1.103
     </RequireALL>
    
    在这里插入图片描述
    [root@xuegod63 ~]# systemctl restart httpd
    

    当网站没有默认的首页的时候,直接访问显示网站更目录下的文件夹资源


    在这里插入图片描述

    注意:以上的操作实际上是恢复了 Apache 的原来配置,Apache 默认为网站目录下可以浏览文件
    夹资源。
    取消网站目录下浏览文件夹资源
    修改配置文件:

    [root@xuegod63 ~# vim /etc/httpd/conf/httpd.conf # 修改红色标记内容
    改:144 Options Indexes FollowSymLinks
    为:144 # Options Indexes FollowSymLinks
    [root@xuegod63 ~]# systemctl restart httpd
    
    在这里插入图片描述
    通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护

    设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。

    [root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf
    

    在需要使用用户验证的目录的相关 Directory 段落添加以内容:

    Alias /phpdata/ "/usr/local/phpdata /"
    <Directory "/usr/local/phpdata /">
    Options Indexes FollowSymLinks
    AllowOverride None
    #Require all granted #注释此行,并加入以下 4 行内容
    authtype basic
     authname "my web site"
    authuserfile /etc/httpd/conf/passwd.secret
    require valid-user
    </Directory>
    
    在这里插入图片描述

    参数说明:
    authtype basic

    authtype 命令:指定认证类型为:basic。

    authname "my web site "

    AuthName 命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。

    authuserfile /etc/httpd/conf/passwd.secret

    AuthUserFile 命令:指定一个包含用户名和密码的文本文件,每行一对。

    require 命令

    指定哪些用户或组才能被授权访问。如:require user user1 user2 (只有用户 user1 和user2 可以访问)

    require valid-user (在 AuthUserFile 指定的文件中任何用户都可以访问)

    利用 Apache 附带的程序 htpasswd,生成包含用户名和密码的文本文

    命令格式:htpasswd –cm 存放用户名和密码的文件名 用户名
    [root@xuegod63 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret tom
    New password: 123456
    Re-type new password: 123456
    Adding password for user tom
    

    注意:

    第一个生成用户名和密码,需要创建文件,因此需要加-c 参数

    第二次创建用户,不能用-c,否则会把前面的用户覆盖了

    [root@xuegod63 phpdata]# htpasswd -h #查看参数
    -c:创建新文件(Create a new file.)
    -m:强制对密码进行 MD5 加密(Force MD5 encryption of the password.)
    [root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob
    New password: 123456
    Re-type new password: 123456
    Adding password for user bob
    [root@xuegod63 conf]# cat /etc/httpd/conf/passwd.secret #查看密码文件内容
    tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.
    bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0
    

    测试:

    [root@xuegod63 ~]# systemctl restart httpd
    http://192.168.1.63/phpdata/
    
    在这里插入图片描述
    在这里插入图片描述

    Apache 虚拟主机基于-IP-域名-端口三种搭建方式

    配置 Apache 虚拟主机,实现在一台服务器上运行多个网站
    Apache 虚拟主机实现有三种方法:
    1、通过不同的 IP 地址
    2、通过不同的域名
    3、通过不同的端口号

    三种都需要把虚拟主机功能打开:
    方法一:
    通过不同的 IP 地址,解析不同域名
    给服务器增加 IP(另一个域名解析出来的那个 IP)。

    [root@xuegod63 ~]# ifconfig ens33:1 192.168.1.62 netmask 255.255.255.0
    [root@xuegod63 ~]# echo "bbs.xuegod.cn"> /var/www/html/bbs/index.html
    [root@xuegod63 ~]# cd /etc/httpd/conf.d/
    创建虚拟主机的配置文件:
    [root@xuegod63 conf.d]# vim bbs.conf
    <VirtualHost 192.168.1.63:80>
     ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /var/www/html/
     ServerName dummy-host.example.com
     ErrorLog logs/dummy-host.example.com-error_log
     CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    <VirtualHost 192.168.164:80>
     ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /var/www/html/bbs/
     ServerName dummy-host.example.com
     ErrorLog logs/dummy-host.example.com-error_log
     CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    

    测试:

    [root@xuegod63 conf]# systemctl restart httpd
    [root@xuegod63 conf.d]# curl 192.168.1.63
    welcome to www.xuegod.cn!
    [root@xuegod63 conf.d]# curl 192.168.1.62
    bbs.xuegod.cn
    

    方法二:
    通过不同域名:(这种访问在企业比较常见,其他两种访问可以了解下即可)
    在域名管理后台,修改 DNS 配置,www.xuegod.combbs.xuegod.com 解析成相同的 IP。

    [root@xuegod63 conf.d]# vim bbs.conf
    <VirtualHost *:80>
     ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /var/www/html/
     ServerName www.xuegod.com
     ErrorLog logs/www.xuegod.com-error_log
     CustomLog logs/www.xuegod.com-access_log common
    </VirtualHost>
    <VirtualHost *:80>
     ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /var/www/html/bbs/
     ServerName bbs.xuegod.com
     ErrorLog logs/bbs.xuegod.com-error_log
     CustomLog logs/bbs.xuegod.com-access_log common
    </VirtualHost>
    

    配置文件修改最终如图下:


    在这里插入图片描述
    [root@xuegod63 conf.d]# systemctl restart httpd
    [root@xuegod63 conf.d]# vim /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.63 www.xuegod.com
    192.168.1.63 bbs.xuegod.com
    

    测试:

    [root@xuegod63 conf.d]# curl www.xuegod.com
    welcome to www.xuegod.cn!
    [root@xuegod63 conf.d]# curl bbs.xuegod.com
    bbs.xuegod.cn
    

    修改本地 Windows 的 hosts 文件,可以实现在浏览器上用域名访问:


    在这里插入图片描述

    方法 3:基于端口配置虚拟主机:
    [root@xuegod63 conf.d]# vim /etc/httpd/conf/httpd.conf
    42 Listen 80 #在此行下添加监听 81 号端口
    43 Listen 81
    [root@xuegod63 conf]# vim /etc/httpd/conf.d/bbs.conf
    改:8 <VirtualHost *:80>
    为:8 <VirtualHost *:81> #此处修改的端口,在 apache 的主配置文件需要有监听端口

    更改为要添加的多个端口

    在这里插入图片描述
    [root@xuegod63 conf.d]# systemctl restart httpd
    [root@xuegod63 conf.d]# curl bbs.xuegod.com:81
    bbs.xuegod.cn
    [root@xuegod63 conf.d]# curl www.xuegod.com
    welcome to www.xuegod.cn!
    

    相关文章

      网友评论

          本文标题:Apache 服务器概述-安装-搭建 Web 网站服务器之前的环

          本文链接:https://www.haomeiwen.com/subject/tfmqcrtx.html