使用Apache服务部署静态网站2019-7-5
使用Apache服务部署静态网站
第1步:把镜像挂载到系统中
第2步:使用vim文件编辑器创建YUM仓库的配置文件
[root@study ~]# vim /etc/yum.repos.d/abc.repo
[abc]
name=abc
baseurl=file:///media/
enabled=1
gpgcheck=0
第3步:安装Apache服务程序
[root@study ~]# yum install httpd -y
第4步:启用httpd服务程序并将其加入开机启动项中
[root@study ~]# systemctl start httpd
[root@study ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
第5步:在浏览器输入系统IP 地址是否出现测试页面。
配置服务文件参数
httpd服务程序的主要配置文件及存放位置
配置文件的名称 | 存放位置 |
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/accesss_log |
错误日志 | /var/log/httpd/error_log |
httpd的主配置文件存在三种类型的信息:注释行信息、全局配置、区域配置
参数 | 用途 |
ServerROOT | 服务目录 |
ServerAdmin | 管理员邮箱 |
User | 运行服务的用户 |
Group | 运行服务的用户组 |
ServerName | 网站服务器的域名 |
DocumentRoot | 网站数据目录 |
Directory | 网站数据目录的权限 |
Listen | 监听的IP地址与端口号 |
DirectoryIndex | 默认的索引页页面 |
ErrorLog | 错误日志文件 |
CustomLog | 访问日志文件 |
Timeout | 网页超时时间,默认为300秒 |
DocumentRoot参数用于定义网站数据的保存路径,其参数的默认值是把网站数据存放到/var/www/html目录中,而当前网站普遍的首页面名称时index.html,因此可以向/var/www/html目录中写入一个文件,替换掉httpd服务程序的默认首页面,该操作会立即生效。
[root@study ~]# echo "Welcome to Purple Cloud Fairy" > /var/www/html/index.html
修改网站数据目录
1、建立网站数据的保存目录,并创建首页文件
root@study ~]# mkdir /home/wwwroot
[root@study ~]# echo "The New Web Directory" > /home/wwwroot/index.html
2、打开httpd服务程序的主配置文件,将第119行用于定义网站数据保存的参数DocumentRoot修改为/home/wwwroot,同时还需要将第124行定义目录权限的参数Directory后面的路径也修改为/home/wwwroot
[root@study ~]# mkdir /home/wwwroot
[root@study ~]# echo "The New Web Directory" > /home/wwwroot/index.html
[root@study ~]# vim /etc/httpd/conf/httpd.conf
[root@study ~]# systemctl restart httpd
个人用户主页功能
第1步:在httpd服务程序中,默认没有开启个人用户主页功能。
需要编辑/etc/httpd/conf.d/userdir.conf文件,然后在第17行的UserDir disabled注释掉,表示让httpd服务程序开启个人用户主页功能;同时再把第24行的UserDir public_html参数前面的注释去掉(UserDir参数表示网站数据在用户目录中的保存目录名称,即public_html目录)
第2步:在用户家目录中建立用于保存网站数据的目录及首页文件。另外,还需要把家目录的权限修改为755,保证其他人也有权限读取里面的内容。
[root@study ~]# su - linux
-bash-4.2$ mkdir public_html
-bash-4.2$ echo "This is purple's website" > public_html/index.html
-bash-4.2$ chmod -Rf 755 /home/linux
添加个人主页口令
1、先使用htpasswd命令生成密码数据库。-c参数表示第一次生成;后面在分别添加密码数据库的存放文件,以及验证要用到的用户名称。
[root@study ~]# htpasswd -c /etc/httpd/passwd linux
New password: 输入网页验证密码
Re-type new password:再输入一遍进行确认
Adding password for user linux
2、编辑个人用户主页功能的配置文件。把第31~40行的参数信息修改称下列内容,保存并退出配置文件,重启httpd服务程序即可生效。
31 <Directory "/home/*/public_html">
32 AllowOverride all
33 #刚刚生成出来的密码验证文件保存路径
34 authuserfile "/etc/httpd/passwd"
35 #当用户尝试访问个人用户网站时的提示信息
36 authname "My privately website"
37 authtype basic
38 #用户进行账户密码登录时需要验证的用户名称
39 require user linux
40 </Directory>
虚拟主机功能
虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服 务器”Apache 的虚拟主机功能是服务器基于用户请求的不同 IP 地址、主机域名或端口号,实 现提供多个网站同时为外部提供访问服务的技术。
1、基于IP地址
第1步:添加IP
[root@study ~]# cd /etc/sysconfig/network-scripts/
[root@study network-scripts]# touch ifcfg-eno16777736:1 ifcfg-eno16777736:2
[root@study network-scripts]# cat ifcfg-eno16777736 >ifcfg-eno16777736:1
[root@study network-scripts]# cat ifcfg-eno16777736 >ifcfg-eno16777736:2
将这两个配置文件IP地址分别修改为192.168.218.139、192.168.218.140
重启网络服务、查看IP地址
[root@study network-scripts]# /etc/init.d/network restart
Restarting network (via systemctl): [ OK ]
[root@study network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:da:49:b1 brd ff:ff:ff:ff:ff:ff
inet 192.168.218.138/24 brd 192.168.218.255 scope global dynamic eno16777736
valid_lft 1803sec preferred_lft 1803sec
inet 192.168.218.140/24 brd 192.168.218.255 scope global secondary eno16777736:1
valid_lft forever preferred_lft forever
inet 192.168.218.139/24 brd 192.168.218.255 scope global secondary eno16777736:2
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feda:49b1/64 scope link
valid_lft forever preferred_lft forever
第2步:分别在/home/wwwroot 中创建用于保存不同网站数据的 3 个目录,并向其中分别写入网站的首页文件。
[root@study network-scripts]# mkdir -p /home/wwwroot/138 139 149
[root@study network-scripts]# echo "IP:192.168.138" > /home/wwwroot/138/index.html
[root@study network-scripts]# echo "IP:192.168.139" > /home/wwwroot/139/index.html
[root@study network-scripts]# echo "IP:192.168.140" > /home/wwwroot/140/index.html
第3步:在 httpd 服务的配置文件中大约 113 行处开始,分别追加写入三个基于 IP 地址的虚 拟主机网站参数,然后保存并退出。
[root@study ~]# vim /etc/httpd/conf/httpd.conf
113 <VirtualHost 192.168.218.138>
114 DocumentRoot /home/wwwroot/138
115 ServerName www.purple.com
116 <Directory /home/wwwroot/138>
117 AllowOverride None
118 Require all granted
119 </Directory>
120 </VirtualHost>
121 <VirtualHost 192.168.218.139>
122 DocumentRoot /home/wwwroot/139
123 ServerName bbs.purple.com
124 <Directory /home/wwwroot/139>
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
129 <VirtualHost 192.168.218.140>
130 DocumentRoot /home/wwwroot/140
131 ServerName www.purple.com
132 <Directory /home/wwwroot/140>
133 AllowOverride None
134 Require all granted
135 </Directory>
136 </VirtualHost>
[root@study ~]# systemctl restart httpd
在浏览器访问这3个IP
基于主机域名
第1步:手动定义IP地址与域名之间的对应关系的配置文件,保存并退出后会立即生效。
通过PING来验证是否成功解析为IP地址
[root@study ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.218.138 www.purple.com bbs.purple.com blogs.purple.com
第2步:分别在/home/wwwroot中创建用于保存不同网站数据的三个目录,并向其中分 别写入网站的首页文件。
[root@study ~]# mkdir -p /home/wwwroot/www
[root@study ~]# mkdir -p /home/wwwroot/bbs
[root@study ~]# mkdir -p /home/wwwroot/blogs
[root@study ~]# echo "www.purple.com" > /home/wwwroot/www/index.html
[root@study ~]# echo "bbs.purple.com" > /home/wwwroot/bbs/index.html
[root@study ~]# echo "blogs.purple.com" > /home/wwwroot/blogs/index.html
第3步:在 httpd 服务的配置文件 113 行处开始,分别追加写入三个基于主机名的 虚拟主机网站参数,然后保存并退出。
113 <VirtualHost 192.168.218.138>
114 DocumentRoot /home/wwwroot/www
115 ServerName www.purple.com
116 <Directory /home/wwwroot/www>
117 AllowOverride None
118 Require all granted
119 </Directory>
120 </VirtualHost>
121 <VirtualHost 192.168.218.138>
122 DocumentRoot /home/wwwroot/bbs
123 ServerName bbs.purple.com
124 <Directory /home/wwwroot/bbs>
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
129 <VirtualHost 192.168.218.138>
130 DocumentRoot /home/wwwroot/blogs
131 ServerName blogs.purple.com
132 <Directory /home/wwwroot/blogs>
133 AllowOverride None
134 Require all granted
135 </Directory>
136 </VirtualHost>
使用curl命令测试
[root@study ~]# systemctl restart httpd
[root@study ~]# curl www.purple.com
www.purple.com
[root@study ~]# curl bbs.purple.com
bbs.purple.com
[root@study ~]# curl blogs.purple.com
blogs.purple.com
基于端口号
第1步:分别在/home/wwwroot中创建用于保存不同网站数据的两个目录,并向其中分别写入网站的首页文件。
[root@study ~]# mkdir -p /home/wwwroot/2345
[root@study ~]# mkdir -p /home/wwwroot/2346
[root@study ~]# echo "port:2345" > /home/wwwroot/2345/index.html
[root@study ~]# echo "port:2346" > /home/wwwroot/2346/index.html
第2步:在httpd服务配置文件的第43行和第44行分别添加用于监听2345和2346端口的参数。
[root@study ~]# vim /etc/httpd/conf/httpd.conf
43 Listen 2345
44 Listen 2346
第3步:在httpd服务的配置文件中大约113行开始,分别追加写入两个基于端口号的虚拟网站参数,然后保存退出。
<VirtualHost 192.168.218.138:2345>
DocumentRoot "/home/wwwroot/2345"
ServerName www.purple.com
<Directory "/home/wwwroot/2345">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.218.138:2346>
DocumentRoot "/home/wwwroot/2346"
ServerName www.purple.com
<Directory "/home/wwwroot/2346">
AllowOverride None
Require all granted
</Directory>
</Virtualhost>
[root@study ~]# systemctl restart httpd
Apache的访问控制
Apache可以基于源主机名、源IP地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。它通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问。在允许或禁止访问网站资源时,还会用到Order命令,这个指令用来定义Allow或Deny指令其作用的顺序,其匹配原则时按照顺序进行匹配,若匹配成功则执行后面的默认指令。
第1步:现在服务器上的网站数据目录中新建一个子目录,并在这个子目录中创建一个包含Successful单词的首页文件。
[root@study ~]# mkdir /var/www/html/server
[root@study ~]# echo "Successful" > /var/www/html/server/index.html
第2步:打开httpd服务的配置文件,在第129行后面添加规则来限制源主机的访问。这段规则的含义时允许使用Chrome浏览器的主机访问,除此之外所有请求都会被拒绝。
129 <Directory "/var/www/html/server">
130 SetEnvIf User-Agent "Chrome" ff=1
131 Order allow,deny
132 Allow from env=ff
133 </Directory>
[root@study ~]# systemctl restart httpd
使用Chrome浏览器访问。
使用QQ浏览器访问
通过匹配IP地址进行访问控制,例如只允许IP地址为192.168.218.138的主机访问网站资源
在httpd配置文件第129行添加下列规则,
129 <Directory "/var/www/html/server">
130 Order allow,deny
131 Allow from 192.168.218.138
132 Order allow,deny
133 </Directory>
[root@study ~]# systemctl restart httpd
[root@study ~]# curl 192.168.218.138/server/
Successful
浏览器访问
使用Apache服务部署静态网站2019-7-5的更多相关文章
- Linux下Apache服务部署静态网站------网站服务程序
文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序
- 《Linux就该这么学》培训笔记_ch10_使用Apache服务部署静态网站
<Linux就该这么学>培训笔记_ch10_使用Apache服务部署静态网站 文章最后会post上书本的笔记照片. 文章主要内容: 网站服务程序 配置服务文件参数 SELinux安全子系统 ...
- 第10章 使用Apache服务部署静态网站
章节简述: 本章节中通过对比目前热门的网站服务程序来说明Apache服务程序的优势,并新增主机空间选购技巧小节. 了解SELinux服务的3种工作模式,小心谨慎的使用semanage命令和setseb ...
- RHEL7-使用Apache服务部署静态网站
1. 安装Apache服务程序 1.1 在虚拟机中选中光盘镜像,并设置连接 1.2 将光盘设备挂载到/media/cdrom目录 [root@localhost ~]# mkdir -p /media ...
- 使用Apache服务部署静态网站
1970年,作为互联网前身的ARPANET(阿帕网)已初具雏形,并开始向非军用部门开放,许多大学和商业部门开始接入.虽然彼时阿帕网的规模(只有4台主机联网运行)还不如现在的局域网成熟,但是它依然为网络 ...
- Apache服务:使用 Apache 服务部署静态网站
1.安装Apache服务 第一步:安装Apache服务程序 yum install httpd 具体流程参考https://www.cnblogs.com/python-wen/p/1016845 ...
- Apache服务部署静态网站
Web网络服务也叫WWW(World Wide Web),一般是指能够让用户通过浏览器访问到互联网中文档等资源的服务. 目前提供WEB网络服务的程序有Apache.Nginx或IIS等等,Web网站服 ...
- Linux笔记15 使用Apache服务部署静态网站。
配置服务文件参数Linux系统中的配置文件 服务目录 /etc/httpd 主配置文件 /etc/httpd/conf/httpd.conf 网站数据目录 /var/www/html 访问日志 /va ...
- 利用Apache部署静态网站(一)
Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充, ...
随机推荐
- MySQL复习值代码知识点(2)
目录 总汇表 order by使用举例 group by使用举例 limit举例 group by 与order by 联合使用 having的使用 SQL运行结果查询 总汇表 order by 排序 ...
- RDIFramework.NET敏捷开发框架 ━ 工作流程组件Web业务平台
接前两篇: RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍 RDIFramework.NET敏捷开发框架 ━ 工作流程组件WinForm业务平台 1.RDIFramework.NE ...
- NXP_RTCESL库
恩智浦实时控制嵌入式软件库(缩写为RTCESL,以前为恩智浦嵌入式软件库FSLESL)是一组算法,从基础数学运算到高级数学变换以及高级观测器,这些都可以方便地用在复杂的实时控制应用中以及我们的电机控制 ...
- express搭建后端请求路由,前端进行访问对应的接口 后端解决跨域
代码在 ==>E:\nodes实战\myserve\testserve 1 express搭建后端请求路由,前端进行访问对应的接口 1) 创建项目目录 express 项目名 -e 然后按照提示 ...
- linux 安装程序的方式
linux 安装程序的方式 通用二进制格式(绿色软件,打开即用) 软件包管理器(rpm) 软件包管理器的前端工具(yum) 源代码编译
- LEETCODE 1254 统计封闭岛屿的数目 Number of Closed Islands
地址 https://leetcode-cn.com/contest/weekly-contest-162/problems/number-of-closed-islands/ 有一个二维矩阵 gri ...
- 算法问题实战策略 SORTGAME
地址 https://algospot.com/judge/problem/read/SORTGAME 解答 常规BFS是会超时的 按照书上的提示 应该是打表(居然还有提倡打表的题目) tle 代码 ...
- Java之Scanner类
Scanner类概述 一个可以解析基本类型和字符串的简单文本扫描器.简而言之,Scanner类的功能:可以实现键盘输入数据,到程序当中. 例如,以下代码使用户能够从 System.in 中读取一个数. ...
- 剑指Offer-36.数字在排序数组中出现的次数(C++/Java)
题目: 统计一个数字在排序数组中出现的次数. 分析: 给定一个已经排好序的数组,统计一个数字在数组中出现的次数. 那么最先想到的可以遍历数组统计出现的次数,不过题目给了排序数组,那么一定是利用了排序这 ...
- WPF 精修篇 数据绑定 更新通知
原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定 其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...