安装与基础配置
-
安装Apache HTTPD
sudo apt update
sudo apt install apache2 -y - CentOS/RHEL:
sudo yum install httpd -y sudo systemctl start httpd
-
默认文档根目录
- 默认路径:
/var/www/html
(Linux)或C:Apachehtdocs
(Windows)。 - 修改根目录(编辑
httpd.conf
):DocumentRoot "/path/to/your/directory" <Directory "/path/to/your/directory"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
- 默认路径:
目录权限与文件访问
-
设置目录权限
- 示例:给
/var/www/html
赋予读写权限(谨慎操作):sudo chmod -R 755 /var/www/html sudo chown -R www-data:www-data /var/www/html # Linux下调整所有者
- 示例:给
-
允许目录列表
- 在
<Directory>
块中添加Options Indexes
,访问目录时会显示文件列表。
- 在
-
禁止脚本执行
- 防止上传的脚本被执行(如
.php
文件):<Directory "/path/to/directory"> Options -ExecCGI </Directory>
- 防止上传的脚本被执行(如
文件下载与类型处理
-
强制文件下载
AddType application/octet-stream .bin .exe .zip .rar
- 或使用
Content-Disposition
头(需配置模版文件)。 -
限制下载速度
- 安装
mod_ratelimit
模块,并添加:<Location "/downloads"> SetEnv rate-limit 1000000 # 1MB/s </Location>
- 安装
安全配置
-
禁用敏感文件访问
- 隐藏
.ht
文件:<FilesMatch ".ht"> Require all denied </FilesMatch>
- 隐藏
-
IP访问控制
- 仅允许特定IP访问:
<Directory "/path/to/secure"> Require ip 192.168.1.100 </Directory>
- 仅允许特定IP访问:
-
启用SSL(HTTPS)
- 生成自签名证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
- 修改监听端口:
Listen 443 https <VirtualHost :443> SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key DocumentRoot "/var/www/html" </VirtualHost>
- 生成自签名证书:
虚拟主机配置
配置项 | 说明 | 示例值 |
---|---|---|
ServerName |
指定域名 | example.com |
DocumentRoot |
网站根目录 | /var/www/example |
<Directory> |
目录权限控制 | Require all granted |
ErrorLog |
错误日志路径 | /var/log/apache2/error.log |
日志与监控
-
访问日志
<VirtualHost :80>
CustomLog /var/log/apache2/access.log combined
</VirtualHost> - 查看日志:
tail -f /var/log/apache2/access.log
-
实时状态监控
- 安装
mod_status
:sudo a2enmod status
- 访问
http://your-server:80/server-status
。
- 安装
相关问题与解答
问题1:如何限制特定IP访问文件服务器?
解答:在配置文件中添加 Require
指令,
<Directory "/path/to/restricted"> Require ip 192.168.1.0/24 # 仅允许内网IP访问 </Directory>
问题2:如何为文件服务器配置HTTPS?
解答:需安装SSL证书并修改虚拟主机配置:
- 获取证书(如Let’s Encrypt):
sudo apt install certbot python3-certbot-apache -y sudo certbot --apache -d your-domain.com
- 确保
httpd.conf
中启用了mod_ssl
:LoadModule ssl_module modules/mod_ssl.so