在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處理。這種架構可以提高網站的性能和可擴展性。