使用Apache搭建Web网站服务器
Apache服务
Apache被研发于1995年,是纯开源软件。用于HTTP协议提供web浏览服务,可在Unix、Linux、Windows上运行。
1、配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
2、关闭防火墙或者安全模块
systemctl disable firewalld #永久关闭防火墙
systemctl stop firewalld #暂时关闭防火墙,重启虚拟机时防火墙会重新开启
systemctl status firewalld #查看防火墙状态
vim /etc/selinux/config #enforcing改为disabled,永久关闭安全模块
3、Apache安装:
方法一:
编译安装:RPM
方法二:
配置yum源进行yum安装:
yum -y install httpd #安装httpd
rpm -ql httpd | less #查看安装文件的所有
4、httpd软件的配置
vim /etc/httpd/conf/httpd.conf #无需修改
:q #浏览完退出编译模式
Apache配置文件:
ServerRoot "/etc/httpd" #httpd服务的安装目录
Listen 80 #默认监听TCP协议80端口
Include conf.modules.d/*.conf #定义模板文件
User apache #定义服务运行用户
Group apache #定义服务运行组
ServerAdmin root@localhost #定义服务管理员
<Directory /> #定义服务根目录的访问权限
AllowOverride none #网站重写功能
Require all denied #定义为拒绝访问
</Directory>
DocumentRoot "/var/www/html" #定义网站根目录【文档】根目录
<Directory "/var/www"> #定义网站根目录的权限
AllowOverride None
Require all granted #定义允许所有用户访问
</Directory>
<Directory "/var/www/html"> #定义目录访问权限
Options Indexes FollowSymLinks
AllowOverride None
Require all granted #定义允许所有用户访问
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log" #访问错误日志的存储路径
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
Apache的日志文件:
cd /var/log/httpd
ls
access_log #浏览到httpd下有成功日志
error_log #浏览到httpd下有失败日志
启动httpd服务:
systemctl start httpd
查看进程
ps aux | grep httpd
PID文件路径:
/etc/httpd/run --> /run/httpd/httpd.pid
访问文件目录:
/var/www/html
index.html #默认文件名称
echo "hello" > index.html
httpd访问方式:
(1)Windows浏览器直接访问
(2)Linux:
1. curl IP或域名进行访问,显示网页源代码,HTML语句
2. Firefox IP或域名 调用安装的Firefox去访问网站
3. elinks IP或域名,在终端打开一个简易页面。
安装elinks命令:yum -y install elinks
构建web虚拟主机
1、基于域名:同一IP不同主机域名进行访问不同文件根目录
配置hosts文件:
vim /etc/hosts
192.168.139.140 www.test1.com
192.168.139.140 www.test2.com
配置文件:
vim /usr/share/doc/httpd-*
vim httpd-vhost.conf #模板
vim /etc/httpd/conf/httpd.conf #复制模板到这里面
<VirtualHost *:80>
DocumentRoot "/var/www/html/test1"
ServerName www.test1.com
ErrorLog "/var/log/httpd/test1-error_log"
CustomLog "/var/log/httpd/test1-access_log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/test2"
ServerName www.test2.com
ErrorLog "/var/log/httpd/test2-error_log"
CustomLog "/var/log/httpd/test2-access_log" common
</VirtualHost>
cd /var/www/html #建立2个访问目录
mkdir test1 → vim index.html → 随意编辑一些内容
mkdir test2 → vim index.html → 随意编辑一些内容
firefox 192.168.139.140 #进入火狐浏览器,分别访问以下2个网址
192.168.139.140/test1
192.168.139.140/test2
做完以上操作需要重启httpd
systemctl restart httpd
2、基于不同IP:不同IP,相同端口,不同域名,访问不同文件根目录
给虚拟机添加网卡:
ifconfig ens36 up #启动
配置ens36网卡:
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim /etc/sysconfig/network-scripts/ifcfg-ens36#修改网卡配置信息
重启网卡:
systemctl restart network
配置hosts文件:
vim /etc/hosts
192.168.139.140:80 www.test1.com
192.168.139.135:80 www.test2.com
配置文件:
vim /usr/share/doc/httpd-*
vim httpd-vhost.conf #模板
vim /etc/httpd/conf/httpd.conf #复制模板到这里面
#修改配置文件Listen 80为:
Listen 192.168.139.140:80
Listen 192.168.139.135:80
#在配置文件的最后添加代码:
<VirtualHost 192.168.139.140:80>
DocumentRoot "/var/www/html/test1"
ServerName www.test1.com
ErrorLog "/var/log/httpd/test1-error_log"
CustomLog "/var/log/httpd/test1-access_log" common
</VirtualHost>
<VirtualHost 192.168.139.135:80>
DocumentRoot "/var/www/html/test2"
ServerName www.test2.com
ErrorLog "/var/log/httpd/test2-error_log"
CustomLog "/var/log/httpd/test2-access_log" common
</VirtualHost>
修改配置文件之后需要重启httpd
systemctl restart httpd
firefox 192.168.139.140 #进入火狐浏览器,分别访问以下2个网址
192.168.139.140:80/test1
192.168.139.135:80/test2
3、基于不同端口:不同端口,不同IP,不同域名访问不同文件根目录
配置hosts文件:
vim /etc/hosts
192.168.139.140:1061 www.test1.com
192.168.139.135:1062 www.test2.com
配置文件:
vim /usr/share/doc/httpd-*
vim httpd-vhost.conf #模板
vim /etc/httpd/conf/httpd.conf #复制模板到这里面
#修改配置文件
Listen 192.168.139.140:1061
Listen 192.168.139.135:1062
<VirtualHost 192.168.139.140:1061>
DocumentRoot "/var/www/html/test1"
ServerName www.test1.com
ErrorLog "/var/log/httpd/test1-error_log"
CustomLog "/var/log/httpd/test1-access_log" common
</VirtualHost>
<VirtualHost 192.168.139.135:1062>
DocumentRoot "/var/www/html/test2"
ServerName www.test2.com
ErrorLog "/var/log/httpd/test2-error_log"
CustomLog "/var/log/httpd/test2-access_log" common
</VirtualHost>
systemctl restart httpd #修改配置文件之后需要重启httpd
firefox 192.168.139.140 #进入火狐浏览器,分别访问以下2个网址
192.168.139.140:1061/test1
192.168.139.135:1062/test2
4、httpd服务的访问限制:
客户端地址的限制
Require all granted : 允许所有用户都能访问
Require all denied :拒绝所有用户访问
Require local :只允许本机访问
Require [not] host <主机名或域名>:允许或者拒绝制定的主机或域访问
Require [not] ip <IP或IP网段>:允许或者拒绝制定的IP或IP网段访问
需要使用not拒绝访问时,添加配置:
< RequireAll >
Requitre not host 或者Requitre not ip
< /RequireAll >