在LNMP(Linux, Nginx, MySQL, PHP)环境中实现动静分离,主要是通过Nginx来处理静态资源,而将动态请求转发给PHP处理。以下是实现动静分离的步骤:
1. 安装和配置Nginx
首先,确保你已经安装了Nginx。如果还没有安装,可以使用以下命令进行安装:
# 在CentOS上安装Nginx sudo yum install epel-release sudo yum install nginx sudo systemctl start nginx sudo systemctl enable nginx
2. 配置Nginx处理静态资源
在Nginx的配置文件中,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/
目录下的某个文件,你需要配置静态资源的处理。例如:
server { listen 80; server_name example.com; root /var/www/html; index index.php index.html index.htm; location /static/ { alias /var/www/html/static/; } location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
在这个配置中,所有对/static/
路径下的静态资源请求将由Nginx直接处理,而其他请求将被转发到PHP处理。
3. 配置PHP-FPM
确保PHP-FPM正在运行,并且Nginx可以与之通信。通常,PHP-FPM的配置文件位于/etc/php-fpm.d/www.conf
或/etc/php-fpm.conf
。确保listen
指令设置为127.0.0.1:9000
或通过UNIX套接字与Nginx通信。
# 编辑PHP-FPM配置文件 sudo vim /etc/php-fpm.d/www.conf # 确保以下配置 listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1
然后重启PHP-FPM服务:
sudo systemctl restart php-fpm
4. 部署静态资源
将所有静态资源(如CSS、JavaScript、图片等)放在Nginx配置中指定的静态资源目录下,例如/var/www/html/static/
。
5. 部署动态内容
对于动态内容,如PHP脚本,将它们放在Nginx配置中location ~ \.php$
块指定的目录下,例如/var/www/html/
。
6. 测试动静分离
启动Nginx和PHP-FPM服务后,使用浏览器访问你的网站,确保静态资源能够被正确加载,动态内容也能够通过PHP处理并返回。
通过以上步骤,你就可以在LNMP环境中实现动静分离,提高网站的性能和可维护性。