Nginx – Cấu hình locations

Đây là cấu hình được dùng rất nhiều khi sử dụng Nginx.

Nginx cho phép chúng ta tạo nhiều block location. Mỗi block có một chỉ thị khác nhau. Chỉ thị có thể là kết quả khớp nhau, hay tiền tố hoặc là biểu thức chính quy.

mở file /etc/nginx/conf.d/ecntt.com.conf

sudo nano /etc/nginx/conf.d/ecntt.com.conf

thêm block / {}

location / {
                try_files $uri $uri/ =404;
        }

Chỉ thị này sẽ khai báo với Nginx nếu không tìm thấy file hay thư mục thì trả về mã lỗi 404.

Tiếp theo, chúng ta thêm 2 location khác với nội dung như sau để test

location /img {
                autoindex on;
        }

        location /500 {
                fastcgi_pass unix:/this/will/fail;
        }

/img sẽ cho phép sau file/folder trong thư mục img của chúng ta (Mặc định Nginx sẽ báo 403 Forbidden)

/500 sẽ tạo ra mã lỗi 500 để chúng ta test.

Tiếp đến thêm chúng ta khai báo page cho mã lỗi tương ứng

error_page 404 /404.html;
        location = /404.html {
                internal;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                internal;
        }

Code hoàn chỉnh

server {
        listen 80 default_server;
        server_name ecntt.com www.ecntt.com;
        index index.html index.htm index.php;
        root /var/www/ecntt.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location /img {
                autoindex on;
        }

        location /500 {
                fastcgi_pass unix:/this/will/fail;
        }

        error_page 404 /404.html
        location = /404.html {
                internal;
        }

        error_page 500 502 503 504 /50x.html
        location = /50x.html {
                internal;
        }
}

Save lại, test và reload nginx

Tạo 2 file 404.html và 50x.html

echo "404 page" > /var/www/ecntt.com/404.html
echo "50x page" > /var/www/ecntt.com/50x.html

Vào các url sau để xem kết quả

url : /

url : /missing

url : /img

url : /500