Cấu hình Nginx.conf chuẩn cho WordPress?

Kiến thức hosting

1. Nginx.conf là gì?

nginx.conf là tệp cấu hình chính của Nginx, một máy chủ web và proxy ngược phổ biến. Trong tệp cấu hình này, bạn có thể định cấu hình cho nhiều khía cạnh của hoạt động của Nginx, bao gồm cài đặt máy chủ, các tùy chọn proxy, cài đặt SSL, quản lý phiên bản và nhiều điều khác nữa.

Tệp cấu hình thường được đặt trong thư mục /etc/nginx trên hệ điều hành Linux. Nó chứa các block cấu hình, mỗi block bắt đầu và kết thúc bằng cặp dấu ngoặc nhọn {}. Các thiết lập cụ thể được xác định bên trong các block này.

2. Cấu hình Nginx.conf chuẩn cho WordPress?

Đây là file chuẩn mình đã tham khảo được các bạn có thể thử:

#Cấu hình nginx-rocket nếu server có cài đặt nginx-rocket và website có sử dụng wp-rocket plugin
#include /etc/nginx/rocket-nginx/conf.d/365custom.conf;

#Chuyển hướng từ /wp-admin sang /wp-admin/ bằng Webserver để giảm thiểu request đến PHP
location = /wp-admin {
        return 301 /wp-admin/;
}

#Cấu hình Rewrite rule url WordPress
location /
{
        try_files  $uri  $uri/ /index.php?$args;
}

#Rewrite rule cho Rankmath sitemap
# START Nginx Rewrites for Rank Math Sitemaps
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
rewrite ^/([a-z]+)?-sitemap\.xsl$ /index.php?xsl=$1 last;
# END Nginx Rewrites for Rank Math Sitemaps

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

# Ẩn, chặn truy cập tất cả các file cấu hình. VD: .env,... 
location ~ /\. {
        deny all;
}

# Chặn truy cập các file backup, sql,...
location ~ ^.+\.(sql|bak|php~|php#|php.save|php.swp|php.swo)$ {
        return 404;
}

#Chặn XMLRPC
location = /xmlrpc.php {
        deny all;
        access_log off;
        log_not_found off;
}

#Chặn thực thi php trong upload
location /wp-content/uploads/ {
        location ~ \.php$ {
                #Prevent Direct Access Of PHP Files From Web Browsers
                deny all;
        }
}

location ~* /(?:uploads|files|wp-content|wp-includes|akismet)/.*.php$ {
        deny all;
}

location ~ /\.(svn|git)/* {
        deny all;
        access_log off;
        log_not_found off;
}

#chặn truy cập vào các file .htaccess hoặc .htpasswd
location ~ /\.ht {
        deny all;
        access_log off;
        log_not_found off;
}

#Chặn truy cập .user.ini
location ~ /\.user.ini {
        deny all;
        access_log off;
        log_not_found off;
}

#Cấu hình Leverage Browser Caching cho file tĩnh
location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|webp|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|_ttf|wav|wma|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|zip|css|js)$ {
        add_header Pragma "public";
        add_header Cache-Control "max-age=31536000, public";
        add_header Access-Control-Allow-Origin "*";
        access_log off;
        log_not_found off;
        if ($request_uri ~ ^[^?]*\.(ttf|ttc|otf|eot|woff|woff2|font.css)(\?|$)) {
                add_header Pragma "public";
                add_header Cache-Control "max-age=31536000, public";
                add_header Access-Control-Allow-Origin "*";
        }
        try_files $uri $uri/ $uri.html /index.php?$args;
}

#Tắt liệt kê thư mục nếu không có file index.php
autoindex off;

#tăng timeout tránh lỗi 504, 503 (VD: Xoá hàng ngàn sản phẩm cùng lúc thì tăng time lên để xử lý)
gzip_proxied any;
proxy_connect_timeout 180s;
proxy_send_timeout 180s;
proxy_read_timeout 180s;
fastcgi_send_timeout 180s;
fastcgi_read_timeout 180s;

proxy_buffers  4 512k;
proxy_buffer_size 512k;
proxy_busy_buffers_size 512k;
fastcgi_buffers 16 512k;
fastcgi_buffer_size 512k;

#Ẩn nginx version.
server_tokens off;

#Ẩn PHP version.
fastcgi_hide_header x-powered-by;
proxy_hide_header x-powered-by;

fastcgi_hide_header X-Powered-By;
proxy_hide_header X-Powered-By;

fastcgi_hide_header x-rocket-nginx-file;
proxy_hide_header x-rocket-nginx-file;

fastcgi_hide_header x-rocket-nginx-reason;
proxy_hide_header x-rocket-nginx-reason;

3. Kết luận:

OK trên đây mình đã giúp các bạn Cấu hình Nginx.conf chuẩn cho WordPress? – chúc các bạn thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *