Giới thiệu
NGINX là một trong những máy chủ web phổ biến nhất hiện nay, đặc biệt khi được sử dụng để phục vụ các trang web WordPress. Với khả năng xử lý yêu cầu cao và tính năng cấu hình linh hoạt, NGINX là sự lựa chọn tuyệt vời để tối ưu hóa hiệu suất của các trang WordPress. Trong bài viết này, chúng ta sẽ khám phá các cấu hình NGINX quan trọng để giúp bạn tối ưu hóa trang WordPress của mình.
1. Cấu Hình Cơ Bản Cho WordPress
Để bắt đầu, bạn cần một cấu hình cơ bản để phục vụ trang WordPress. Cấu hình này giúp NGINX xử lý các yêu cầu và chuyển hướng chúng đến các file PHP tương ứng.
server {
listen 80;
server_name yourdomain.com;
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Giải thích:
listen 80;
: Lắng nghe các yêu cầu trên cổng 80.
server_name yourdomain.com;
: Định nghĩa tên miền của trang web.
root /var/www/wordpress;
: Đường dẫn đến thư mục chứa các file WordPress.
index index.php index.html index.htm;
: Xác định file chỉ định khi không có file cụ thể được yêu cầu.
location /
: Cấu hình để xử lý các yêu cầu đến trang chính, chuyển hướng đến index.php
nếu không tìm thấy file.
location ~ \.php$
: Xử lý các file PHP bằng FastCGI.
location ~ /\.ht { deny all; }
: Cấm truy cập các file .htaccess
.
2. Cấu Hình Để Tối Ưu Hiệu Suất
Để cải thiện hiệu suất và giảm tải cho máy chủ, bạn có thể thêm các cấu hình sau vào tệp cấu hình NGINX.
server {
listen 80;
server_name yourdomain.com;
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
# Cấu hình cache tĩnh
location ~* \.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
expires 30d;
access_log off;
}
}
Giải thích:
fastcgi_buffer_size 16k;
và fastcgi_buffers 4 16k;
: Tăng kích thước bộ đệm để cải thiện hiệu suất xử lý các file PHP.
location ~* \.(jpg|jpeg|gif|css|png|js|ico|xml)$
: Đặt thời gian hết hạn cho các tài nguyên tĩnh như ảnh và CSS để giảm tải cho máy chủ.
3. Cấu Hình HTTPS
Để đảm bảo trang web của bạn an toàn hơn, việc sử dụng HTTPS là rất quan trọng. Dưới đây là cấu hình NGINX cơ bản cho HTTPS.
server {
listen 443 ssl;
server_name yourdomain.com;
root /var/www/wordpress;
index index.php index.html index.htm;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
# Chuyển hướng HTTP sang HTTPS
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
}
Giải thích:
listen 443 ssl;
: Lắng nghe trên cổng 443 với SSL.
ssl_certificate
và ssl_certificate_key
: Đường dẫn đến chứng chỉ SSL và khóa riêng.
server { listen 80; ... }
: Chuyển hướng tất cả các yêu cầu HTTP đến HTTPS.
4. Cấu Hình Cache
Cấu hình cache giúp giảm tải cho máy chủ và cải thiện tốc độ tải trang. Bạn có thể cấu hình cache bằng cách sử dụng FastCGI cache.
http {
fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=MYCACHE:10m max_size=1g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
fastcgi_cache_valid 200 302 1m;
fastcgi_cache_valid 404 1m;
server {
listen 80;
server_name yourdomain.com;
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache MYCACHE;
fastcgi_cache_valid 60m;
}
location ~ /\.ht {
deny all;
}
}
}
Giải thích:
fastcgi_cache_path
: Định nghĩa đường dẫn, kích thước, và thời gian lưu trữ cache.
fastcgi_cache_key
: Đặt khóa cho cache.
fastcgi_cache_use_stale
: Sử dụng cache cũ khi có lỗi.
fastcgi_cache_valid
: Đặt thời gian hợp lệ cho các mã trạng thái HTTP.
Kết Luận
Việc cấu hình NGINX cho WordPress có thể giúp cải thiện hiệu suất, bảo mật, và khả năng mở rộng của trang web của bạn. Bằng cách sử dụng các cấu hình cơ bản, tối ưu hiệu suất, hỗ trợ HTTPS và cấu hình cache, bạn có thể đảm bảo rằng trang WordPress của bạn hoạt động hiệu quả và an toàn. Hy vọng rằng bài viết này sẽ giúp bạn hiểu rõ hơn về cách cấu hình NGINX cho trang WordPress của mình.
Kết nối với web designer Lê Thành Nam