使用Apache服务部署静态网站

使用Apache服务部署静态网站

网站服务程序

安装httpd

yum -y install httpd
systemctl start httpd
systemctl enable httpd

配置服务文件参数

linux系统中的配置文件

/etc/httpd                          ##  服务目录
/etc/httpd/conf/httpd.conf          ##  主配置文件
/var/www/html                       ##  网站数据目录
/var/log/httpd/access_log           ##  访问日志
/var/log/httpd/error_log            ##  错误日志

在httpd服务的主配置文件中存在三种类型的信息:注释信息、全局配置、区域配置

##  全局变量
ServerRoot "/etc/httpd"
ServerName  www.hjk.com
​
##  区域配置
<Directory />
...........
</Directory>
...........
<Location /server-status>
...........
</Location>

配置httpd服务程序时最常用的参数以及用途描述

ServerRoot              ##  服务目录
ServerAdmin             ##  管理员邮箱
User                    ##  运行服务的用户
Group                   ##  运行服务的用户组
ServerName              ##  网站服务器的域名
DocumentRoot            ##  网站数据目录
Directory               ##  网站数据目录的权限
Listen                  ##  监听的ip地址和端口号
DirectoryIndex          ##  默认的索引页页面
ErrorLog                ##  错误日志文件
Customlog               ##  访问日志文件
Timeout                 ##  网页超时时间,默认为30秒

修改httpd服务程序保存的数据目录

第一步:建立网站数据的保存目录,并创建首页文件

[root@localhost ~]# mkdir /home/wwwroot
[root@localhost ~]# echo "hjk 2020041156" > /home/wwwroot/index.html

第二步:修改主配置文件

修改以下内容:
DocumnetRoot "/home/wwwroot"    ## 修改网站数据保存的路径
​
<Directory "/home/wwwroot">     ## 修改定义目录权限的参数后面的路径

第三步:重启httpd服务

systemctl restart httpd
systemctl enable httpd

个人用户主页功能

第一步:进入/etc/httpd/conf.d/userdir.conf 文件下

将文件中第17行    UserDir disabled 注释掉
##      表示让httpd服务程序开启个人主页功能
将文件中第24行    UserDir public_html  的注释去掉
##      UserDir参数表示网站数据在用户家目录中保存目录名称,即public_html目录

第二步:创建用户,并在用户家目录中建立用户保存网站数据的目录及首页。

[root@localhost ~]# useradd hjk
[root@localhost ~]# passwd hjk
更改用户 hjk 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - hjk
[hjk@localhost ~]$ mkdir public_html
[hjk@localhost ~]$ echo "hjk 2020041156" > public_html/index.html
[hjk@localhost ~]$ chmod -Rf 755 /home/hjk

 在home目录下,赋予其他用户对test有可执行的权限
[root@centos7 home]# chmod o+x hjk

第三步:重启httpd服务

systemctl restart httpd
systemctl enable httpd

第四步:如果没有关闭selinux,则需执行以下操作

getsebool -a | grep httpd
setsebool -P httpd_enable_homdir=on

给个人主页添加密码验证

第一步:先使用htpasswd命令形成密码数据库,-c参数表示第一次形成;后面再分别添加密码数据库存放的文件,以及验证要用到的用户名称(该用户不必是系统中已经存在的用户)

[root@localhost home]# htpasswd -c /etc/httpd/passwd hjk1
New password: 
Re-type new password: 
Adding password for user hjk1

第二步:编辑个人主页功能的配置文件。修改31~35行内容如下:

<Directory "/home/*/public_html">
#    AllowOverride FileInfo AuthConfig Limit Indexes
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    Require method GET POST OPTIONS
     AllowOverride all						
     authuserfile "/etc/httpd/passwd"		##	刚刚生成出来的密码验证文件保存的路径
     authname "My privately website"		##	当用户尝试访问个人用户网站时的提示信息
     authtype basic
     require user hjk1						##	用户进行账户密码登录时需要验证的用户名称
</Directory>

第三步:重启httpd服务

systemctl restart httpd

虚拟主机功能

基于IP地址

第一步:添加3个网卡

IP地址分别为
192.168.100.10
192.168.100.20
192.168.100.30

第二步:在/var/www/html 目录下分别创建目录为10、20、30

[root@localhost ~]# mkdir -p /var/www/html/10
[root@localhost ~]# mkdir -p /var/www/html/20
[root@localhost ~]# mkdir -p /var/www/html/30
[root@localhost ~]# echo "<h1>IP 192.168.100.10</h1>" > /var/www/html/10/index.html
[root@localhost ~]# echo "<h1>IP 192.168.100.20</h1>" > /var/www/html/20/index.html
[root@localhost ~]# echo "<h1>IP 192.168.100.30</h1>" > /var/www/html/30/index.html

第三步:在路径/etc/httpd/conf.d/ 目录下添加ip.conf文件 (添加的文件必须以.conf为后缀)

在文件ip.conf 内添加以下内容:

<VirtualHost 192.168.100.10>
DocumentRoot /var/www/html/10
ServerName www.hjk1.com
<Directory /var/www/html/10>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.100.20>
DocumentRoot /var/www/html/20
ServerName www.hjk2.com
<Directory /var/www/html/20>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.100.30>
DocumentRoot /var/www/html/30
ServerName www.hjk3.com
<Directory /var/www/html/30>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

第四步:重启httpd服务

systemctl restart httpd
systemclt enalbe httpd

基于主机名

第一步:编辑/etc/hosts文件

在文件内添加
192.168.100.10 www.hjk.com bbs.hjk.com tech.hjk.com

第二步:在/var/www/html 目录下分别创建目录为www、bbs、tech

[root@localhost ~]# mkdir -p /var/www/html/www
[root@localhost ~]# mkdir -p /var/www/html/bbs
[root@localhost ~]# mkdir -p /var/www/html/tech
[root@localhost ~]# echo "www.hjk.com" > /var/www/html/www/index.html
[root@localhost ~]# echo "bbs.hjk.com" > /var/www/html/bbs/index.html
[root@localhost ~]# echo "tech.hjk.com" > /var/www/html/tech/index.html

第三步:在路径/etc/httpd/conf.d/ 目录下添加host.conf文件

在host.conf内添加:

<VirtualHost 192.168.100.10>
DocumentRoot /var/www/html/www
ServerName "www.hjk.com"
<Directory /var/www/html/www>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.100.10>
DocumentRoot /var/www/html/bbs
ServerName "bbs.hjk.com"
<Directory /var/www/html/bbs>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.100.10>
DocumentRoot /var/www/html/tech
ServerName "tech.hjk.com"
<Directory /var/www/html/tech>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

第四步:重启httpd服务

systemctl restart httpd
systemclt enalbe httpd

基于端口号

第一步:在/var/www/html 目录下分别创建目录为6111、6222

[root@localhost ~]# mkdir -p /var/www/html/6111
[root@localhost ~]# mkdir -p /var/www/html/6222
[root@localhost ~]# echo "<h1>port:6111</h1>" > /var/www/html/6111/index.html
[root@localhost ~]# echo "<h1>port:6222</h1>" > /var/www/html/6222/index.html

第二步:在httpd服务配置文件中的第43和44行分别添加用监听的6111和6222端口的参数

Listen 6111
Listen 6222

第三步:在路径/etc/httpd/conf.d/ 目录下添加listen.conf文件

在listen.cong 文件添加以下内容:

<VirtualHost 192.168.100.10:6111>
DocumentRoot /var/www/html/6111
ServerName "www.hjk.com"
<Directory /var/www/html/6111>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.100.10:6222>
DocumentRoot /var/www/html/6222
ServerName "bbs.hjk.com"
<Directory /var/www/html/6222>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

第四步:添加http协议相关的端口号中(默认没有)6111和6222

### 使用semanage命令查询并过滤出所有与http协议相关且selinux服务允许的端口列表
[root@localhost conf.d]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

### 添加6111和6222端口
[root@localhost conf.d]# semanage port -a -t http_port_t -p tcp 6111
[root@localhost conf.d]# semanage port -a -t http_port_t -p tcp 6222
[root@localhost conf.d]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      6222, 6111, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

第五步:重启HTTP的服务程序

systemctl restart httpd
systemclt enalbe httpd

Apache的访问控制

Apache可以基于主机名、源ip地址和源浏览器特征等信息对网站上的资源进行范围控制。它通过Allow指允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止范问。在允许禁止访问网站资源时,还会用到Order指令,这个指令用来定义Allow或Deny指令发起的作用顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow Deny”表示将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反则拒绝访问请求。

第一步:先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中创建一个宝行successful的单词首页

[root@localhost ~]# mkdir /var/www/html/server
[root@localhost ~]# echo "successful" > /var/www/html/server/index.html

第二步:在httpd服务程序中的主配置文件内,第129行面添加下述规则来限制源主机的访问

<Directory "/var/www/html/server">
Order allow,deny
Allow from 192.168.100.77
</Directory>

### 这段含义是只允许使用Firefox浏览器的主机访问服务器上的首页文件

除了匹配源主机的浏览器特征之外,还可以通过匹配源主机的IP地址进行访问控制。

<Directory "/var/www/html/server">
Order allow,deny
Allow from 192.168.100.77
Order allow,deny
</Directory>

###	只允许192.168.100.77 IP地址访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值