在CentOS上配置Nginx实现动静分离,通常涉及将静态内容(如HTML、CSS、JavaScript文件)和动态内容(如PHP、Python等脚本处理的结果)分别处理,以提高性能和可扩展性。以下是一个基本的步骤指南:
首先,确保你的CentOS系统上已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install nginx
编辑Nginx的配置文件,通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/conf.d/
目录下的某个文件。以下是一个示例配置,假设我们将静态内容放在 /var/www/html
目录,动态内容通过PHP处理,并且使用FastCGI来处理PHP请求。
server {
listen 80;
server_name example.com;
# 静态内容处理
location /static/ {
alias /var/www/html/;
expires 30d;
}
# PHP处理
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 其他请求处理
location / {
try_files $uri $uri/ @rewrite;
}
# 重写规则
location @rewrite {
rewrite ^/(.*)$ /index.php?$1 last;
}
}
确保你已经安装了PHP-FPM,并且它正在运行。如果没有安装,可以使用以下命令进行安装:
sudo yum install php-fpm
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
编辑PHP-FPM的配置文件,通常位于 /etc/php-fpm.d/www.conf
或 /etc/php-fpm.conf
。确保监听端口或Unix socket与Nginx配置中的 fastcgi_pass
一致。
[www]
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
保存所有配置文件后,重启Nginx和PHP-FPM服务以应用更改:
sudo systemctl restart nginx
sudo systemctl restart php-fpm
打开浏览器,访问你的服务器IP地址或域名,确保静态内容能够正确加载,动态内容能够通过PHP处理并返回正确的结果。
通过上述步骤,你可以在CentOS上配置Nginx实现动静分离。静态内容通过Nginx直接处理,而动态内容则通过PHP-FPM处理。这种架构可以提高网站的性能和可扩展性。