在CentOS系统中实现LNMP(Linux, Nginx, MySQL, PHP)的动静分离,主要是通过配置Nginx来实现的。动静分离的基本思想是将动态请求和静态请求分开处理,动态请求由后端PHP-FPM处理,静态请求直接由Nginx返回。以下是实现动静分离的步骤:
首先,确保你已经安装了Nginx和PHP-FPM。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install nginx php-fpm
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。以下是一个基本的配置示例:
server {
listen 80;
server_name example.com;
# 静态资源处理
location /static/ {
alias /path/to/your/static/files/;
expires 30d;
add_header Cache-Control "public";
}
# 动态请求处理
location / {
root /path/to/your/webroot;
index index.php index.html index.htm;
# 尝试匹配PHP文件
try_files $uri $uri/ /index.php?$query_string;
# PHP-FPM处理
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
确保PHP-FPM正在运行,并且配置正确。你可以编辑/etc/php-fpm.d/www.conf
文件来配置PHP-FPM:
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx
然后启动PHP-FPM:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
最后,重启Nginx以应用配置更改:
sudo systemctl restart nginx
确保你的静态资源可以通过/static/
路径访问,动态请求可以通过根路径/
访问,并且PHP文件能够正确处理。
通过以上步骤,你就可以在CentOS系统中实现LNMP的动静分离。静态资源由Nginx直接处理,动态请求由PHP-FPM处理,从而提高网站的性能和响应速度。