Apache服务器的搭建与配置
Apache安装配置
·
一、Yum安装
1. Yum安装Apache
[root@localhost ~]# yum -y install httpd # 安装
[root@localhost ~]# rpm -qa | grep httpd # 查看http包
httpd-tools-2.4.6-97.el7.centos.5.x86_64
httpd-2.4.6-97.el7.centos.5.x86_64
安装成功后,会新增下面文件
/etc/httpd # http安装目录
/etc/httpd/conf/httpd.conf # http主配置文件
/var/www/html # 默认网站家目录
2. 配置文件参数简介
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
AddDefaultCharset UTF-8 # 字符编码
ServerRoot "/etc/httpd" # 存放配置文件的目录
Listen 80 # 监听端口
Include conf.modules.d/*.conf # 包含模块目录的配置文件
User apache # 子进程用户
Group apache # 子进程组
ServerAdmin root@localhost # 管理员邮件地址
#ServerName www.example.com:80 # 域名主机名
DocumentRoot "/var/www/html" # 网站家目录
# 设置Document Root指定目录属性
<Directory "/var/www/html">
Options Indexes FollowSymLinks # 找不到主页时,允许以目录的形式访问,并允许链接到网站根目录以外
AllowOverride None # none,不适用htaccess控制,all允许
Require all granted # granted表示运行所有访问,denied表示拒绝所有访问
</Directory>
DirectoryIndex index.html # 定义主页文件,当访问到网站目录时,如果有定义的主页文件,网站会自动访问
ErrorLog "logs/error_log" # 错误日志文件位置及文件名
3. 启动服务
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2022-06-17 18:11:19 CST; 29s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 100535 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─100535 /usr/sbin/httpd -DFOREGROUND
├─100536 /usr/sbin/httpd -DFOREGROUND
├─100537 /usr/sbin/httpd -DFOREGROUND
├─100538 /usr/sbin/httpd -DFOREGROUND
├─100539 /usr/sbin/httpd -DFOREGROUND
└─100540 /usr/sbin/httpd -DFOREGROUND
4. 设置防火墙
[root@localhost httpd]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost httpd]# firewall-cmd --reload
success
5. 浏览器访问验证
二、 编译安装
1. 安装依赖
[root@localhost ~]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
2. 下载源码包
官网地址:Download - The Apache HTTP Server Projecthttp://httpd.apache.org/download.cgi
3. 上传安装包到服务器目录下
4. 解压
[root@localhost ~]# tar -zxvf httpd-2.4.54.tar.gz
5. 进入解压目录,编译安装,安装到/usr/local/目录下
[root@localhost httpd-2.4.54]# ./configure --prefix=/usr/local/apache && make && make install
6. 启动服务
[root@localhost apache]# ./bin/apachectl start
[root@localhost apache]# ps -ef | grep apache
root 125218 1 0 07:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 125219 125218 0 07:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 125220 125218 0 07:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 125221 125218 0 07:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
7. 常用命令
[root@localhost ~]# /usr/local/apache/bin/apachectl -M # 查看常见的模块(静态和动态)
[root@localhost ~]# /usr/local/apache/bin/apachectl -l # 查看加载的静态模块
[root@localhost ~]# /usr/local/apache/bin/apachectl -t # 检查配置文件是否有错误
[root@localhost ~]# /usr/local/apache/bin/apachectl graceful # 加载配置文件但不重启
[root@localhost ~]# /usr/local/apache/bin/apachectl restart|start|stop # 重启|启动|停止服务
三、 配置用户认证
1. 修改配置文件httpd-vhosts.conf,增加如下代码
[root@localhost apache]# vi conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/test"
<Directory /var/www/html/test>
AllowOverride AuthConfig
AuthName "final"
AuthType Basic
AuthUserFile /var/www/html/test/.htpasswd # 指定存放用户名和密码的文件
require valid-user
<Directory>
<VirtualHost>
2. 修改配置文件httpd.conf
# 修改前
# Include conf/extra/httpd-vhosts.conf
# 修改后
Include conf/extra/httpd-vhosts.conf
3. 制作软连接
[root@localhost bin]# ln -s /usr/local/apache/bin/htpasswd /usr/local/bin/htpasswd
4. 创建目录
[root@localhost bin]# mkdir -p /var/www/html/test
5. 生成密码文件
[root@localhost test]# htpasswd -c /var/www/html/test/.htpasswd final # 指定用户名为final
New password:
Re-type new password:
Adding password for user final
6. 重启服务
7. 验证
在浏览器中输入http://localhost/虚拟目录
四、配置默认虚拟主机
1. 修改主配置文件httpd.conf
[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf
<Directory />
AllowOverride none
Require all denined # 修改为granted
</Directory>
Include conf/extra/httpd-vhosts.conf # 取消注释
2. 修改虚拟配置文件httpd-vhosts.conf
[root@localhost ~]# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
# 删除原先配置,增加如下代码
<VirtualHost *:80>
DocumentRoot "/var/www/html/test/" # 可以没有目录
ServerName www.test.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/ceshi/"
ServerName www.ceshi.com
</VirtualHost>
五、 配置静态缓存
对于图片、css、html、JavaScript,允许客户端进行缓存,访问时无需和服务端进行通信,提高用户体验。使用前需要确认是否支持mod_expires.c模块。
[final@www ~]$ vi /usr/local/apache/conf/extra/httpd-vhosts.conf
<IfModule mod_expires.c>
ExpiresActive on # 启用模块
ExpiresByType image/gif "access plus 1 days" # 指定类型缓存时间
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hours"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave "now plus 2 hours"
ExpiresByType "now plus 0 min"
</IfModule>
六、 配置防盗链
防止其它网站大量使用自己网站内的一些图片,使用过多的流量,造成带宽的浪费。
[final@www ~]$ vi /usr/local/apache/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref # 给网址做标注
<filesmatch "\.(txt|png|gif|mp3|zip|rar|jpg|css|js)"> # 指定文件类型
Order Allow,Deny # 禁止引用,先允许后拒绝,默认拒绝所有;Order Deny,Allow,先拒绝后允许,默认允许所有
Allow from env=local_ref # 允许local_ref引用
</filesmatch>
注:Order Allow,Deny禁止引用,先允许后拒绝,默认拒绝所有;Order Deny,Allow,先拒绝后允许,默认允许所有
七、 访问控制
[final@www ~]$ vi /usr/local/apache/conf/extra/httpd-vhosts.conf
# 针对某些目录进行访问控制,禁止指定IP访问
<Directory "/data/www">
AllowOverride None
Options None
Order allow,deny
Allow from all
deny from 192.168.201.1 # 该IP地址为禁止访问IP地址
</Directory>
# 针对URI做访问限制,所有URI中包含admin的都进行访问限制
<filesmatch "(.*)admin(.*)">
Order allow,deny
Allow from all
Deny from 192.168.206.1/24
</filesmatch>
更多推荐
已为社区贡献1条内容
所有评论(0)