在LNMP(Linux, Nginx, MySQL, PHP)环境中实现动静分离,主要是通过Nginx来处理静态资源,而将动态请求转发给PHP处理。以下是实现动静分离的步骤:
首先,确保你已经安装了Nginx。如果还没有安装,可以使用以下命令进行安装:
# 在CentOS上安装Nginx
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable 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处理。
确保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
将所有静态资源(如CSS、JavaScript、图片等)放在Nginx配置中指定的静态资源目录下,例如/var/www/html/static/
。
对于动态内容,如PHP脚本,将它们放在Nginx配置中location ~ \.php$
块指定的目录下,例如/var/www/html/
。
启动Nginx和PHP-FPM服务后,使用浏览器访问你的网站,确保静态资源能够被正确加载,动态内容也能够通过PHP处理并返回。
通过以上步骤,你就可以在LNMP环境中实现动静分离,提高网站的性能和可维护性。