Linux-使用Apache部署一个简单的首页网站【修改网站数据目录、配置别名、用户验证登录】

Linux云计算架构-使用apache搭建简单的web网站服务器

1. web服务器介绍

一般网站服务是指Web网络服务。是指允许用户通过浏览器访问到互联网中各种资源的服务。Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求才会响应,最终用于提供服务程序的Web服务器会通过HTTP或者HTTPS把请求的内容传送给用户。(有请求才有回应)
提供web网络服务的程序有IISNginxApache
IIS(Internet Information Services,互联网信息服务):windows系统中默认的web服务程序,图形化的网站管理工具,不仅可以提供web网站服务,还可以提供FTP\NMTP\SMTP等服务。
Nginx:后起之秀,非常好用。
Apache:RHEL5、6、7系统的默认web服务程序,老牌web服务程序。
④tomcat

apache官网http://www.apache.org/
apache官网http://httpd.apache.org/

2. 使用apache部署web网站服务器

web服务的工作模式:B/S模式
端口号:80/http(默认端口) 443/https(SSL安全端口)

Apache服务程序的服务名为httpd

# 安装httpd服务
[root@client ~]# yum install -y httpd
# 安装字符界面的浏览器客户端
[root@client ~]# yum install -y elinks

# 写点测试内容
[root@client ~]# cd /var/www/html/
[root@client html]# echo hahah > index.html

# 启动httpd服务
[root@client ~]# systemctl start httpd.service 
[root@client ~]# systemctl enable httpd.service 

# 开放80端口号
[root@client ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
[root@client ~]# firewall-cmd --reload 
success

# 看下能否正常访问,如果不行,估计是配置文件的问题
# 一般是这行要改: 
95 ServerName localhost:80
[root@client ~]# elinks 192.168.8.181
# 直接访问网址:
http://192.168.8.181/

在这里插入图片描述

3. 配置httpd服务程序

  1. httpd服务程序的主要配置文件
    ①服务目录【路径:/etc/httpd
    ②主配置文件【路径:/etc/httpd/conf/httpd.conf
    ③网站数据目录【路径:/var/www/html
    ④访问日志【路径:/var/log/httpd/access_log
    ⑤错误日志【路径:/var/log/httpd/error_log

  2. 主配置文件【路径:/etc/httpd/conf/httpd.conf
    存在3种类型的信息:注释信息全局配置(对所有子站点都有效)区域配置(对指定子站点有效)
    在这里插入图片描述

 31 ServerRoot "/etc/httpd"     # httpd服务目录
 42 Listen 80          # 监听端口号,可以指定
 57 Include conf.modules.d/*.conf      
 67 User apache           # 运行httpd服务的用户
 68 Group apache         # 运行httpd服务的用户组
 87 ServerAdmin root@localhost      # 管理员邮箱   
 96 ServerName localhost:80      # web服务器名,一般为IP:80
103 <Directory />     # 设置网站数据目录的权限
104     AllowOverride none   # 设置为none,忽略.htaccess
105     Require all denied   # 拒绝所有,允许所有为allow
106 </Directory>
120 DocumentRoot "/var/www/html"     # 默认的网站数据目录
183 ErrorLog "logs/error_log"   # 错误日志存放位置
190 LogLevel warn   # 日志级别
218     CustomLog "logs/access_log" combined    # 访问日志存放位置
317 AddDefaultCharset UTF-8    # 支持的语言,默认编码
354 IncludeOptional conf.d/*.conf     # conf.d目录下conf文件也是有效配置文件

# 定义首页文件
164 <IfModule dir_module>
165     DirectoryIndex index.html   # 首页为index.html
166 </IfModule>

# Timeout 60    # 访问超时时间

#  获取状态信息的界面,配置文件本身没有这个内容
356 ExtendedStatus On
357 <location /server-status>
358  SetHandler server-status
359  Order allow,deny
360  Allow from 127.0.0.1 192.168.8.0/24
361 </location>

4. 修改web网站数据目录

# 查看下apache版本,可以看到版本是Apache/2.4.6 (CentOS)
[root@client ~]# curl -I 192.168.8.181
HTTP/1.1 200 OK
Date: Wed, 19 Aug 2020 13:04:25 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Wed, 19 Aug 2020 12:16:27 GMT
ETag: "6-5ad39f9178694"
Accept-Ranges: bytes
Content-Length: 6
Content-Type: text/html; charset=UTF-8

# 修改网站数据目录为/data/www/html
# 创建目录并创建测试数据
[root@client ~]# mkdir -p /data/www/html
# 查看selinux安全上下文并修改为httpd_sys_content_t
[root@client ~]# ll -Zd /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
[root@client ~]# ll -Zd /data/www/html/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /data/www/html/
[root@client ~]# chcon -R -t httpd_sys_content_t /data/www/html/
[root@client ~]# cp /var/www/html/index.html /data/www/html/

# 备份httpd配置文件
[root@client ~]# cd /etc/httpd/conf
[root@client conf]# cp httpd.conf httpd.conf.bak

# apache2.2和apache2.4访问控制写法:
===================================================
# apache2.4写法:
Require host 主机地址
Require ip ip地址
Require not ip 10.1.1.1
Require not host www.com
require all granted 允许所有访问
require all denied 拒绝所有访问
Require expr expression 若expression计算为true则允许访问
Require user userid 只有指定的用户才可以访问
Require group group-name 指定的用户组可以访问
Require valid-user 所有有效用户可以访问
# 修改网站数据目录
[root@client ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/data/www/html"
<Directory "/data/www/html">
    AllowOverride None
    Require all denied
    Require ip 192.168.8.0/24
</Directory>

===================================================
# apache2.2写法:
# 修改网站数据目录
[root@client ~]# vim /etc/httpd/conf/httpd.conf 
DocumentRoot "/data/www/html"
<Directory "/data/www/html">
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny   # 有冲突时的优先级。越往后优先级越高。这里默认是拒绝的。
     Allow from 192.168.8.0/24   # 允许网段
     Deny from 192.168.9.0/24    # 拒绝网段
     Allow from .baidu.com       # 允许百度访问
 </Directory>
===============================================

[root@client ~]# systemctl restart httpd

在这里插入图片描述

5. 配置别名(虚拟目录)

[root@client ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/data/www/html"
alias /data/ /data/www/html/   # 取别名,即虚拟目录
<Directory "/data/www/html">
    AllowOverride None
    Require all denied
    Require ip 192.168.8.0/24
</Directory>
[root@client ~]# systemctl restart httpd

在这里插入图片描述

扫描二维码关注公众号,回复: 11711430 查看本文章
# 当网站数据目录下不存在首页文件(index.html),则显示该目录下文件夹。
# 生成一些目录
[root@client ~]# cp -a /boot/grub/ /data/www/html/
# 编辑httpd配置文件
[root@client ~]# vim /etc/httpd/conf/httpd.conf
Alias /data "/data/www/html"
<Directory "/data/www/html">
    AllowOverride None
    Options Indexes FollowSymLinks    # 加上该句即可
    Require all denied
    Require ip 192.168.8.0/24
</Directory>
[root@client ~]# systemctl restart httpd

在这里插入图片描述

6. 用户验证登录

[root@client ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/data/www/html"
        Alias /data "/data/www/html"
        <Directory "/data/www/html">
            AllowOverride None
            Options Indexes FollowSymLinks
            # Require all denied
            # Require ip 192.168.8.0/24    # 使用用户验证不可与指定IP同时使用
            authtype basic    # 认证类型
            authname "my web site"   # 认证区域名称
            authuserfile /etc/httpd/conf/passwd.secret    # 用户认证文件
            Require valid-user      # 是否将用户认证文件中的用户作为有效用户,加这句表示是
            # require user abong test  # 把abong和test作为有效用户,允许访问。
        </Directory>

# -c 创建一个用户认证文件。【每一行为  用户名:密码】
# -m 对密码进行md5加密
# -h 查看帮助信息
[root@client ~]# htpasswd -cm /etc/httpd/conf/passwd.secret test  # 首次要加-c参数
New password: 
Re-type new password: 
Adding password for user test
[root@client ~]# htpasswd -m /etc/httpd/conf/passwd.secret abong    # 追加只需-m
New password: 
Re-type new password: 
Adding password for user abong
[root@client ~]# cat /etc/httpd/conf/passwd.secret
test:$apr1$IHwwQSBP$S8uq/HHX4avbjYbK557U91
abong:$apr1$EUpr6yfG$tMcuMf/bWoYezLByROhlI0
[root@client ~]# systemctl restart httpd

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/108121462