Mặc đinh, khi ta truy cập máy chủ qua địa chỉ IP thay vì tên miền, Nginx sẽ điều hướng ta tới website đầu tiên trong bảng chữ cái alphabet. Điều này có thể dẫn đến lộ IP thật trong khi ta đang sử dụng Cloudflare để ẩn IP của website, tránh bị DDOS.
Để ngăn chặn, ta chỉnh sửa file /etc/nginx/site-available/default thành như sau:
server { listen 80 default_server; listen [::]:80 default_server; listen 443 default_server; listen [::]:443 default_server; ssl_certificate /etc/nginx/ssl/default.crt; ssl_certificate_key /etc/nginx/ssl/default.key; server_name _; return 444; }
Ta cần tạo chứng chỉ cho kết nối qua https bằng cách sau:
sudo mkdir /etc/nginx/ssl cd /etc/nginx/ssl sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout default.key -out default.crt -subj '/CN='
Sau đó ta chỉ cần reload lại servive nginx rồi thử truy cập qua IP bằng cả 2 giao thức http và https sẽ thấy trình duyệt báo lỗi thay vì chuyển hướng tới trang đầu tiên. Vậy là thành công.
Ref: https://www.codedodle.com/disable-direct-ip-access-nginx.html