Apache缓存

本文详细介绍了如何在虚拟机上通过远程共享挂载Windows主机的共享文件夹,然后在虚拟机中编译安装Apache服务的过程。从解压源码包开始,经过配置、编译、安装、配置Apache配置文件,到最后的启动服务和验证步骤,提供了完整的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在虚拟机上远程共享并挂载

[root@localhost ~]# smbclient -L //192.168.100.7/                    //远程共享
Enter SAMBA\root's password: 
OS=[Windows 10 Home China 18362] Server=[Windows 10 Home China 6.3]

    Sharename       Type      Comment
    ---------       ----      -------
    ADMIN$          Disk      远程管理
    C$              Disk      默认共享
    D$              Disk      默认共享
    IPC$            IPC       远程 IPC
    LAMP-C7         Disk      
    Users           Disk      
    脚本          Disk      
Connection to 192.168.100.7 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available
[root@localhost ~]# mount.cifs //192.168.100.7/LAMP-C7 /mnt             //远程挂载
Password for root@//192.168.100.7/LAMP-C7:  
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls                                      //查看挂载到/mnt目录下的源码包
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  LAMP-php5.6.txt
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           mysql-5.6.26.tar.gz
awstats-7.6.tar.gz     httpd-2.4.29.tar.bz2              php-5.6.11.tar.bz2

编译安装Apache服务

1.解压源码包到/opt目录下,并切换到此目录下查看解压后的软件包

[root@localhost mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/
[root@localhost mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
[root@localhost mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
[root@localhost mnt]# cd /opt/
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  httpd.txt  rh

2.移动httpd组件包

[root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr            
[root@lamp opt]#  mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
[root@lamp opt]# yum clean all
[root@lamp opt]# yum list

3.安装环境必要软件包

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
zlib-devel \
expat-devel \
pcre \
perl    

4.配置安装目录及模块

[root@lamp opt]#cd /opt/httpd-2.4.29/
[root@lamp httpd-2.4.29]#./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-deflate \
--enable-expires \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

5.编译安装

[root@localhost httpd-2.4.29]# make
[root@localhost httpd-2.4.29]# make install

6.配置Apache配置文件

[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf 

7.在配置文件最后添加内容:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 50 seconds"
</IfModule>

8.配置好以后,切换到/bin目录下,查看语法是否正确,并启动服务

[root@localhost httpd-2.4.29]# pwd
/opt/httpd-2.4.29
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# cd bin/
[root@localhost bin]# ./apachectl -t
Syntax OK
[root@localhost bin]# ./apachectl start       //启动服务

9.查看端口状态

[root@localhost bin]# netstat -ntap | grep 80
tcp        0      0 192.168.35.131:80       0.0.0.0:*               LISTEN      35887/httpd

10. 关闭防火墙和增强性安全功能,验证模块

[root@localhost bin]# systemctl stop firewalld.service 
[root@localhost bin]# setenforce 0
[root@localhost bin]# ./apachectl -t -D DUMP_mooules | grep "expire"
Syntax OK

11.打开一台Windows10主机进行测试验证

打开软件fiddre进行抓包

### 如何在 Ubuntu 上清空 Apache 服务器的缓存 在 Ubuntu 系统上运行 Apache 服务时,可能会遇到由于缓存机制导致页面更新无法即时生效的情况。以下是几种常见的解决方法: #### 修改 Apache 配置以禁用缓存 可以通过修改 Apache 的配置文件来防止其缓存静态资源或其他内容。通常情况下,Apache 的主要配置文件位于 `/etc/apache2/apache2.conf` 或者某些安装环境下可能命名为 `httpd.conf`[^1]。 可以在配置文件中加入以下指令以禁用缓存: ```apache <FilesMatch "\.(html|htm|js|css|php)$"> FileETag None Header unset ETag Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" </FilesMatch> ``` 上述代码通过设置 HTTP 响应头中的 `Cache-Control`, `Pragma`, 和 `Expires` 参数来确保客户端不会缓存指定类型的文件[^2]。 #### 使用 `.htaccess` 文件控制缓存行为 如果允许站点目录下的 `.htaccess` 文件覆盖全局配置,则可以创建或编辑该文件,并添加类似的缓存禁用规则。例如,在网站根目录下放置如下内容的 `.htaccess` 文件即可达到相同效果: ```apache Header set Cache-Control "no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires 0 ``` 这种方法适用于没有权限直接修改主配置文件的情况下[^3]。 #### 重启 Apache 服务 当调整了任何与缓存相关的参数之后,都需要重新启动 Apache 才能使改动生效。执行下面命令完成此操作: ```bash sudo service apache2 restart ``` 或者更简洁的方式: ```bash sudo systemctl restart apache2 ``` 对于部分场景而言,即使已经设置了无缓存策略,仍需手动清除旧有数据存储区域内的残留记录。具体做法取决于实际部署环境以及所使用的模块(如 mod_cache_disk)。一般建议先尝试以上方式;若问题依旧存在再深入排查其他潜在因素[^4]。 --- ### 总结 综上所述,要彻底清理 Apache 在 Ubuntu 下产生的缓存影响,可以从三个方面入手:一是合理设定响应头部信息阻止前端保存副本;二是适时刷新后台进程状态;三是必要时刻果断重载整个 Web Server 实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值