在Ubuntu上实现LNMP动静分离的核心是通过Nginx配置,将静态资源与动态请求分离处理,具体步骤如下:
安装Nginx
sudo apt update && sudo apt install nginx
配置静态资源处理
在Nginx配置文件(如/etc/nginx/sites-available/default)中,添加静态资源路径规则,使用location指令匹配静态文件扩展名(如.js、.css、.png等),并指定实际存储路径:
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
root /var/www/static; # 静态资源目录
expires 30d; # 设置浏览器缓存30天
access_log off; # 关闭访问日志(可选)
}
配置动态请求转发
对非静态请求(如API、PHP页面),使用proxy_pass将请求转发至后端服务(如PHP-FPM、Tomcat等):
location / {
proxy_pass http://backend_server; # 替换为后端服务地址(如127.0.0.1:9000)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
优化缓存与性能(可选)
proxy_cache或直接对接CDN域名。高可用扩展(可选)
upstream模块)分发请求至多台后端服务器。完成配置后,重启Nginx生效:
sudo systemctl reload nginx
关键逻辑:通过Nginx的location指令精准区分静态与动态请求,静态资源由Nginx直接处理,动态请求转发至后端,从而降低后端负载并提升整体性能。