Apache 介绍

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache的主程序名叫httpd。

apache安装

[root@sxw ~]# systemctl stop firewalld[root@sxw ~]# systemctl disable firewalld[root@sxw ~]# setenforce 0[root@sxw ~]# yum install -y httpd[root@sxw ~]# systemctl start httpd[root@sxw ~]# netstat -lntp | grep 80 #查看apache端口tcp6 00 :::80 :::*LISTEN2776/httpd#端口80.可以改
index.html:默认访问网站的主页名称默认发布网站的目录:/var/www/html
apache目录介绍
apache的工作目录:conf 存储配置文件conf.d 存储配置子文件logs 存储日志 modules 存储模块run存储Pid文件,存放的pid号码。是主进程号
认识主配置文件:# vim /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" #定义工作目录Listen 80 #监听端口Listen 192.168.2.8:80 指定监听的本地网卡 可以修改User apache# 子进程的用户,有可能被人改称www账户Group apache # 子进程的组ServerAdmin root@sxw# 设置管理员邮件地址DocumentRoot "/var/www/html"# 发布网站的默认目录,想改改这里。IncludeOptional conf.d/*.conf # 包含conf.d目录下的所有*.conf配置文件# 设置DocumentRoot指定目录的属性<Directory "/var/www/html"> # 网站容器开始标识Options Indexes FollowSymLinks # 找不到主页时,链接到网站目录以外,如测试页面AllowOverride None # 对网站设置特殊属性:none不设置特殊属性,all允许Require all granted # granted表示允许所有人访问,denied表示拒绝所有人访问</Directory># 容器结束DirectoryIndex index.html# 定义主页文件,会自动访问该文件。

访问控制

1.准备测试页面

[root@sxw ~]# echo test1 > /var/www/html/index.html #编写测试文件

2.访问控制测试

可以直接编辑apache主配置文件

1.默认允许所有主机访问[root@sxw ~]# vim /etc/httpd/conf/httpd.conf

[root@sxw ~]# systemctl restart httpd
2.只拒绝一部分客户端访问:[root@sxw ~]# vim /etc/httpd/conf/httpd.conf访问网站服务器反回的状态码:403 没有权限访问200:表示访问网站成功

[root@sxw ~]# systemctl restart httpd
[root@sxw ~]# curl -I http://192.168.153.144#用另外一台机器测试访问成功HTTP/1.1 200 OKDate: Thu, 06 Aug 2020 20:40:37 GMTServer: Apache/2.4.6 (CentOS)Last-Modified: Thu, 06 Aug 2020 20:12:02 GMTETag: "6-5ac3b1a02ac4f"Accept-Ranges: bytesContent-Length: 6Content-Type: text/html; charset=UTF-8
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,它支持文件的上传和下载,是综合传输工具,习惯称url为下载工具。-o:指定下载路径-I:查看服务器的响应信息
3.拒绝所有人[root@sxw ~]# vim /etc/httpd/conf/httpd.conf
[root@sxw ~]# systemctl restart httpd
[root@sxw ~]# curl -I http://192.168.153.144HTTP/1.1 403 ForbiddenDate: Thu, 06 Aug 2020 20:38:00 GMTServer: Apache/2.4.6 (CentOS)Content-Type: text/html; charset=iso-8859-1
总结
<RequireALL>Require all granted</RequireAll><RequireALL>Require all deined</RequireAll><RequireALL>Require not ip 192.168.116.1Require all granted</RequireAll><RequireALL>Require ip 192.168.116.1</RequireAll>
修改默认网站发布目录
[root@sxw ~]# vim /etc/httpd/conf/httpd.conf119DocumentRoot "/www"# 修改网站根目录为/www131<Directory "/www"> # 把这个也对应的修改为/www[root@sxw ~]# mkdir /www#创建定义的网站发布目录[root@sxw ~]# echo "这是新修改的网站根目录/www" > /www/index.html #创建测试页面[root@sxw ~]# systemctl restart httpd#重启服务

虚拟主机

虚拟主机:将多个网站放在一台服务器上。web服务器都可以实现。三种:基于域名 基于端口 基于Ip(300M/9w/1y)
1.基于域名[root@sxw ~]# cd /etc/httpd/conf.d/[root@sxw conf.d]# vim test.conf #创建配置文件<VirtualHost *:80> #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ipDocumentRoot /soso #指定发布网站目录,自己定义ServerName www.soso666.com#指定域名,可以自己定义<Directory "/soso/">AllowOverride None#设置目录的特性,不设置目录的特性Require all granted #允许所有人访问</Directory></VirtualHost><VirtualHost *:80>DocumentRoot /sohoServerName test.soso666.com<Directory "/soho/">AllowOverride NoneRequire all granted</Directory></VirtualHost>[root@sxw ~]# mkdir /soso #创建发布目录[root@sxw ~]# mkdir /soho[root@sxw ~]# echo qianfen > /soso/index.html #创建测试页面[root@sxw ~]# echo qfedu > /soho/index.html[root@sxw ~]# systemctl restart httpd

配置域名解析:

在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

基于端口

[root@sxw ~]# vim /etc/httpd/conf/httpd.conf---添加

2.基于端口[root@sxw ~]# vim /etc/httpd/conf.d/test.conf<VirtualHost *:80>DocumentRoot /sosoServerName www.soso666.com<Directory "/soso/">AllowOverride NoneRequire all granted</Directory></VirtualHost><VirtualHost *:81> #修改端口DocumentRoot /sohoServerName test.soso666.com<Directory "/soho/">AllowOverride NoneRequire all granted</Directory></VirtualHost>[root@sxw ~]# systemctl restart httpd注意:域名解析并没有变
3.基于IP[root@sxw ~]# ifconfig ens33:0 192.168.153.123#添加一个临时ip[root@sxw ~]# vim /etc/httpd/conf.d/test.conf<VirtualHost 192.168.153.144:80> #指定ipDocumentRoot /soso#ServerName www.soso666.com<Directory "/soso/">AllowOverride NoneRequire all granted</Directory></VirtualHost><VirtualHost 192.168.153.123:80> #指定ipDocumentRoot /soho#ServerName test.soso666.com<Directory "/soho/">AllowOverride NoneRequire all granted</Directory></VirtualHost>[root@sxw ~]# systemctl restart httpd#取消添加的ip地址#ifconfig ens33:0 192.168.153.123 down

可以配置域名解析,也可以不用配域名解析