Linux配置nginx缓存(expires)功能

缓存是指在指定服务器不更新文简单情况下,将某些文件缓存到客户端本地,并且配置一定的期限。用户在第二次访问这个文件的时候,请求的不再是服务器,而是直接调用客户端本地缓存内容

 安装好nginx后进入主配置文件

cd /usr/local/nginx/conf 

cp nginx.conf nginx.conf.bak //备份配置文件

vim nginx.conf


 server {

        listen       80;
        server_name  192.168.159.140;

        location / {
            root   html;
            index  index.html index.htm;
            location ~* \.(jpg|png|jpeg|bmp|gif|swf|ico|txt|css|js)$ {
            root /usr/local/nginx/html;
            expires 30d; //缓存期限
        }

        }
}

然后在 /usr/local/nginx/html 中放入图片测试

在浏览器中测试:http://192.168.159.140/微信图片_20220314100103.jpg

用curl命令测试显示结果

[root@localhost html]# curl -I http://192.168.159.140/微信图片_20220314100103.jpg
HTTP/1.1 200 OK
Server: nginx/1.20.2
Date: Mon, 30 May 2022 01:59:46 GMT
Content-Type: image/jpeg
Content-Length: 171299
Last-Modified: Mon, 30 May 2022 01:39:30 GMT
Connection: keep-alive
ETag: "62942052-29d23"
Expires: Wed, 29 Jun 2022 01:59:46 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes

<think>首先,用户的问题是:“我想配置Nginx服务器 请问LinuxNginx服务器配置方法”。这基于系统级指令,我需要用中文回答,并遵守所有格式规则。 系统级指令包括: - 所有行内数学表达式使用$...$,例如 $x^2$。 - 独立公式使用$$...$$并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如 [^1]。 用户可见层的指令: - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 参考站内引用: - [^1]: 关于Nginx配置文件的位置和结构。 - [^2]: 关于部署Nginx服务器,修改systemd服务文件。 - [^3]: 关于启动和停止Nginx服务。 - [^4]: 关于Nginx的概述、安装、配置等。 用户的问题是关于Linux配置Nginx服务器的方法。我需要基于这些引用构建一个结构清晰的回答。 结构化回答: 1. **介绍**:简要解释Nginx是什么以及配置的重要性。 2. **安装Nginx**:基于引用[4],描述安装步骤。 3. **配置文件位置**:基于引用[1],解释配置文件的位置和结构。 4. **编辑配置文件**:提供基本配置示例,解释关键部分。 5. **启动和管理服务**:基于引用[2]和[^3],描述如何启动、停止和重载Nginx。 6. **测试配置**:如何测试配置是否生效。 7. **常见配置场景**:如反向代理、负载均衡等,基于引用[4]。 8. **生成相关问题**:在末尾添加相关问题。 确保使用中文回答,并自然地添加引用标识。例如,在描述配置文件时添加 [^1]。 数学表达式:用户的问题不涉及数学,所以我可能不需要使用数学表达式。但如果要提到任何数学概念,使用指定格式。这里可能不需要。 回答结构: - 分步骤解释。 - 使用清晰的段落。 - 结束时添加相关问题。 相关问题生成: - 基于Nginx配置的主题,如性能优化、常见错误、高级配置等。 - 例如: 1. 如何优化Nginx的性能? 2. Nginx反向代理的具体配置步骤是什么? 3. 如何配置Nginx的负载均衡? 现在,构建回答内容。</think>### LinuxNginx服务器配置方法 配置Nginx服务器Linux系统管理中的常见任务,它涉及安装、编辑配置文件、启动服务和测试等多个步骤。下面我将基于真实可靠的Linux实践(如Ubuntu或CentOS发行版),逐步指导您完成配置过程。整个过程需要root权限,请确保您已登录管理员账户。 #### 1. **安装Nginx** 在配置前,需先安装Nginx。不同Linux发行版的安装命令略有差异: - **Ubuntu/Debian系统**:使用APT包管理器安装。 ```bash sudo apt update # 更新软件包列表 sudo apt install nginx -y # 安装Nginx ``` - **CentOS/RHEL系统**:使用YUM或DNF包管理器安装(需先添加EPEL仓库)。 ```bash sudo yum install epel-release -y # 添加EPEL仓库 sudo yum install nginx -y # 安装Nginx ``` 安装完成后,Nginx会自动创建默认配置文件和服务单元。验证安装是否成功: ```bash nginx -v # 查看版本号 ``` 引用[4]提到Nginx依赖一些库(如PCRE、OpenSSL),安装过程会自动处理这些依赖[^4]。 #### 2. **定位和编辑配置文件** Nginx的核心配置文件通常位于`/etc/nginx/nginx.conf`,还可能包含子目录中的站点配置文件(如`/etc/nginx/sites-available/`和`/etc/nginx/sites-enabled/`)。这些文件定义了服务器行为,例如监听端口、处理请求规则等。 - **主配置文件结构**:使用文本编辑器(如`nano`或`vim`)打开文件: ```bash sudo nano /etc/nginx/nginx.conf ``` 一个基本示例配置如下(注释解释了关键部分): ```nginx user nginx; # 运行Nginx的用户 worker_processes auto; # 工作进程数,通常设为CPU核心数 error_log /var/log/nginx/error.log; # 错误日志路径 events { worker_connections 1024; # 每个进程的最大连接数 } http { include /etc/nginx/mime.types; # 包含MIME类型文件 default_type application/octet-stream; access_log /var/log/nginx/access.log; # 访问日志路径 server { listen 80; # 监听80端口(HTTP默认端口) server_name localhost; # 服务器域名或IP location / { root /usr/share/nginx/html; # 网站根目录 index index.html index.htm; # 默认首页文件 } } } ``` 修改后保存文件。引用[1]强调,配置文件结构分为全局块(如`user`)、`events`块(连接设置)和`http`块(核心服务配置),确保语法正确以避免启动失败[^1]。 #### 3. **启动和管理Nginx服务** 使用systemd管理Nginx服务: - **启动服务**: ```bash sudo systemctl start nginx # 启动Nginx ``` - **检查状态**:确认服务运行正常。 ```bash sudo systemctl status nginx # 输出应显示"active (running)" ``` - **重载配置**:修改配置文件后,无需重启服务,直接重载使更改生效。 ```bash sudo systemctl reload nginx # 安全重载配置 ``` - **停止服务**: ```bash sudo systemctl stop nginx ``` 引用[2]和[3]提到,systemd服务文件(如`/etc/systemd/system/nginx.service`)定义了启动参数,确保`ExecReload`和`ExecStop`命令正确配置[^2][^3]。 #### 4. **测试配置和验证** 在应用配置前,测试语法是否正确: ```bash sudo nginx -t # 输出应为"syntax is ok" ``` 然后,验证Nginx是否响应: - 在浏览器访问服务器的IP地址(如`http://your-server-ip`),应显示默认欢迎页。 - 或使用`curl`命令: ```bash curl http://localhost # 返回HTML内容 ``` 如果遇到错误,检查日志文件(如`/var/log/nginx/error.log`)排查问题。 #### 5. **常见配置场景** 根据需求扩展配置: - **反向代理**:将请求转发到后端服务(如Tomcat)。 在`server`块中添加: ```nginx location /app { proxy_pass http://localhost:8080; # 转发到8080端口 proxy_set_header Host $host; } ``` - **负载均衡**:分发流量到多个服务器。 在`http`块中定义: ```nginx upstream backend { server backend1.example.com weight=1; # 权重分配 server backend2.example.com weight=2; } server { location / { proxy_pass http://backend; } } ``` - **动静分离**:分离静态资源(如CSS/JS)和动态内容。 ```nginx location ~* \.(jpg|css|js)$ { root /data/static; # 静态资源目录 expires 30d; # 缓存设置 } location / { proxy_pass http://app-server; # 动态请求转发 } ``` 引用[4]详细讨论了这些场景,包括高可用集群配置(如Keeplived+Nginx),建议根据实际需求调整[^4]。 #### 安全提示 - 开放防火墙端口:确保允许HTTP(80)或HTTPS(443)流量。 ```bash sudo ufw allow 80/tcp # 针对Ubuntu sudo firewall-cmd --permanent --add-port=80/tcp && sudo firewall-cmd --reload # 针对CentOS ``` - 启用HTTPS:使用Let's Encrypt免费证书配置SSL/TLS。 通过以上步骤,您应能成功配置Nginx服务器。如果配置复杂,建议备份原始文件(`sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak`),避免错误导致服务中断。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值