Trang chủ / VPS / Hướng dẫn thay đổi tên webserver NGINX trên Unbuntu và CentOS
thay đổi tên nginx server

Hướng dẫn thay đổi tên webserver NGINX trên Unbuntu và CentOS

Chào các bạn!

Nay mình muốn giới thiệu với các bạn một thủ thuật để thay đổi tên webserver NGINX, thich hợp cho bạn nào muốn che giấu sự thật là mình đang dùng NGINX.

Để có thể thay đổi tên webserver NGINX, chúng ta buộc phải sửa trong mã nguồn của NGINX, vì NGINX là mã nguồn mở nên bạn có thể dễ dàng download nó từ trang chủ của NGINX.

Các bạn có thể làm việc này cho dù bạn đã cài đặt NGINX, còn dĩ nhiên bạn nào chưa cài đặt NGINX thì sẽ cài trong bài này.
Đầu tiên mình sẽ lấy ví dụ

thay đổi tên nginx server
nginx theo tên mặc định
Như các bạn đã thấy thì hiện Dropbox đang dùng nginx và họ không thay đổi tên này mà để mặc định.
Bắt đầu công việc chính nào!
Để thay đổi bạn có mã nguồn của NGINX, các bạn có thể tải phiên bản mà thích để làm, ở đây mình dùng 1.9.5 mainline mới nhất, đăng nhập vào SSH và chạy lần lượt lệnh sau:

cd
wget http://nginx.org/download/nginx-1.9.5.tar.gz
tar -xvzf nginx-1.9.5.tar.gz
cd nginx-1.9.5

Bạn dùng phần mềm WINSCP để truy cập vào thư mục nginx-1.9.5 vừa tải về, (nó nằm trong thư mục root) tiếp tục vào thư mục src/http
Bạn mở file ngx_http_header_filter_module.c lên và tìm đến 2 dòng sau, nó nằm ở dòng 49 và 50

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

Thay chữ nginx thành cái gì đó bạn muốn, sau khi thay như sau:

static char ngx_http_server_string[] = "Server: crazytut web server" CRLF;
static char ngx_http_server_full_string[] = "Server: crazytut web server" CRLF;

lưu lại
ghi chú: Nếu bạn không dùng WINSCP thì có sửa ngay trong ssh

cd /root/nginx-1.9.5/http
vi +49 src/http/ngx_http_header_filter_module.c

Nhấn chữ để vào insert, tương tự tìm đến 2 dòng bên như bên trên và sửa lại sau đó lưu lại( nhấn Esc sau đó gõ :wq! để lưu)

Tiếp tục chạy các lệnh sau (chú ý copy toàn bộ lệnh ./confifure(16 dòng chạy 1 lần :D)

./configure \
	--prefix=/usr \
	--conf-path=/etc/nginx/nginx.conf \
	--error-log-path=/var/log/nginx/error.log \
	--http-log-path=/var/log/nginx/access.log \
	--pid-path=/var/run/nginx.pid \
	--lock-path=/var/lock/nginx.lock \
	--with-http_ssl_module \
        --with-http_v2_module \
	--user=www-data \
	--group=www-data \
        --with-http_stub_status_module \
	--with-http_gzip_static_module \
	--without-mail_pop3_module \
	--without-mail_imap_module \
	--without-mail_smtp_module
make
make install

Xong khởi động lại NGINX để áp dụng thay đổi

systemctl restart nginx.service

Cuối cùng vào file /etc/nginx/conf mở lên và thêm dòng sau và giữa cặp http {} để nó không hiện version ra ngoài:

http {
...
server_tokens off;
}

Thực ra, bạn còn có thể thay đổi nhiều thứ khác nữa trong file đó như các thông báo 200, 201,202,301 Moved Permanently,500 Internal Server Error,404 Not Found,…

Bạn thích thì thay đổi sau đó compile lại nginx là được

Còn nhiều cái khác để thay đổi nhưng trong bài này mình chỉ nói tới đấy thôi, sắp tới mình sẽ viết một số tút để nghịch nghịch với nginx hoặc đơn giản là tuỳ biến chức năng cho nó, bạn nào có kĩ năng lập trình C thì có thể làm mấy cái này dễ dàng.

Chúc các bạn thành công!

Nếu bạn thấy có ích, hãy subcribe blog của tôi để nhận thêm nhiều tút hay qua email nữa nhé!