Bỏ qua đến nội dung
KhaiziNam Blog KhaiziNam Blog
Quay lại
Read in English

Hướng dẫn Cấu hình Nginx: HTTP, HTTPS, Proxy Pass

Hướng dẫn Cấu hình Nginx: HTTP, HTTPS, Proxy Pass

Khám phá cách cấu hình Nginx hiệu quả cho HTTP, HTTPS, Proxy Pass và chặn URL. Tối ưu website của bạn ngay hôm nay!

Trong thế giới web hiện đại, việc sở hữu một máy chủ web mạnh mẽ và linh hoạt là yếu tố then chốt để đảm bảo hiệu suất và bảo mật cho website của bạn. Nginx, với kiến trúc bất đồng bộ và khả năng xử lý lưu lượng truy cập cao, đã trở thành lựa chọn hàng đầu của nhiều nhà phát triển và quản trị viên hệ thống. Bài viết này sẽ đi sâu vào cách sử dụng Nginx, giải thích các quy tắc cấu hình quan trọng như HTTP, HTTPS, proxypass, cache, và cách chặn các URL không mong muốn.

Hướng dẫn Cấu hình Nginx: HTTP, HTTPS, Proxy Pass

Hướng dẫn Cấu hình Nginx: HTTP, HTTPS, Proxy Pass

Hiểu rõ cách cấu hình Nginx không chỉ giúp bạn tối ưu hóa tốc độ tải trang mà còn tăng cường khả năng bảo vệ website khỏi các mối đe dọa. Chúng ta sẽ cùng nhau khám phá những khía cạnh cốt lõi của Nginx, từ những khái niệm cơ bản đến các kỹ thuật cấu hình nâng cao, giúp bạn làm chủ công cụ mạnh mẽ này.

Nếu bạn đang tìm kiếm giải pháp để cải thiện hiệu suất và bảo mật cho website, thì việc nắm vững cấu hình Nginx là bước đi không thể bỏ qua. Hãy cùng bắt đầu hành trình khám phá này!

Mục Lục

1. Nginx là gì?

2. Lợi ích của việc sử dụng Nginx

3. Các thành phần chính trong cấu hình Nginx

4. Hướng dẫn từng bước cấu hình Nginx

5. Sai lầm thường gặp khi cấu hình Nginx

6. Câu hỏi thường gặp về Nginx


Nginx là gì?

Nginx (phát âm là “engine-x”) là một máy chủ web mã nguồn mở, được biết đến với hiệu suất cao, khả năng mở rộng và tài nguyên hệ thống thấp. Nó không chỉ đóng vai trò là một máy chủ web mà còn có thể hoạt động như một bộ cân bằng tải, bộ proxy ngược (reverse proxy) và bộ nhớ đệm HTTP.

Đặc điểm nổi bật của Nginx là kiến trúc xử lý sự kiện bất đồng bộ. Thay vì tạo ra một tiến trình mới cho mỗi kết nối như các máy chủ web truyền thống, Nginx sử dụng một kiến trúc dựa trên luồng (event-driven) để xử lý hàng ngàn kết nối đồng thời với số lượng tiến trình tương đối nhỏ. Điều này giúp Nginx tiêu thụ ít bộ nhớ và CPU hơn, đặc biệt hiệu quả khi xử lý lưu lượng truy cập lớn.

Lợi ích của việc sử dụng Nginx

Việc lựa chọn Nginx cho máy chủ web của bạn mang lại nhiều lợi ích đáng kể, góp phần nâng cao hiệu suất và trải nghiệm người dùng.

Các thành phần chính trong cấu hình Nginx

Để hiểu rõ cách sử dụng Nginx, bạn cần nắm vững các khối cấu hình chính:

Hướng dẫn từng bước cấu hình Nginx

Chúng ta sẽ đi qua các bước cấu hình cơ bản cho một website.

1. Cài đặt Nginx

Quá trình cài đặt Nginx khác nhau tùy thuộc vào hệ điều hành của bạn. Trên các hệ thống dựa trên Debian/Ubuntu, bạn có thể chạy:

sudo apt update sudo apt install nginx

Trên CentOS/RHEL, bạn dùng:

sudo yum update sudo yum install nginx

2. Cấu hình HTTP cơ bản

Tệp cấu hình chính của Nginx thường nằm ở `/etc/nginx/nginx.conf`. Các tệp cấu hình cho từng website thường được đặt trong thư mục `/etc/nginx/sites-available/` và được liên kết tượng trưng đến `/etc/nginx/sites-enabled/`.

Tạo một tệp cấu hình mới cho website của bạn, ví dụ: `/etc/nginx/sites-available/mywebsite.conf`:

server { listen 80; server_name your_domain.com www.your\_domain.com; root /var/www/mywebsite/html; index index.html index.htm;

location / {
    try\_files $uri $uri/ =404;
}

}

Sau đó, kích hoạt cấu hình này bằng cách tạo liên kết tượng trưng:

sudo ln -s /etc/nginx/sites-available/mywebsite.conf /etc/nginx/sites-enabled/

Kiểm tra cú pháp cấu hình và khởi động lại Nginx:

sudo nginx -t sudo systemctl restart nginx

3. Cấu hình HTTPS

Để bật HTTPS, bạn cần có chứng chỉ SSL/TLS. Bạn có thể lấy chứng chỉ miễn phí từ Let’s Encrypt. Giả sử bạn đã có chứng chỉ tại `/etc/letsencrypt/live/your_domain.com/fullchain.pem` và `/etc/letsencrypt/live/your_domain.com/privkey.pem`.

Chỉnh sửa tệp cấu hình `mywebsite.conf`:

server { listen 80; server_name your_domain.com www.your\_domain.com; return 301 https://$host$request_uri; # Chuyển hướng HTTP sang HTTPS }

server { listen 443 ssl http2; server_name your_domain.com www.your\_domain.com;

ssl\_certificate /etc/letsencrypt/live/your\_domain.com/fullchain.pem;
ssl\_certificate\_key /etc/letsencrypt/live/your\_domain.com/privkey.pem;

root /var/www/mywebsite/html;
index index.html index.htm;

location / {
    try\_files $uri $uri/ =404;
}

}

Khởi động lại Nginx sau khi thay đổi.

4. Cấu hình Proxy Pass

proxy_pass được sử dụng để chuyển tiếp các yêu cầu đến một máy chủ backend khác. Điều này rất hữu ích khi bạn có một ứng dụng web chạy trên một cổng hoặc máy chủ khác.

Ví dụ, để chuyển tiếp tất cả yêu cầu đến một ứng dụng Node.js chạy ở cổng 3000:

location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

Các `proxy_set_header` quan trọng giúp máy chủ backend biết thông tin về yêu cầu gốc.

5. Cấu hình Cache

Nginx có thể cache các phản hồi từ máy chủ backend hoặc các tệp tĩnh để tăng tốc độ. Bạn có thể sử dụng `proxy_cache_path` và `proxy_cache`.

Định nghĩa đường dẫn cache trong khối `http`:

http { # … các cấu hình khác … proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;

server {
    # ... cấu hình server ...
    location / {
        proxy\_pass http://localhost:3000;
        proxy\_set\_header Host $host;
        # ... các header khác ...

        proxy\_cache my\_cache; # Sử dụng zone cache đã định nghĩa
        proxy\_cache\_valid 200 302 10m; # Thời gian cache cho các mã 200, 302
        proxy\_cache\_valid 404 1m; # Thời gian cache cho mã 404
        add\_header X-Cache-Status $upstream\_cache\_status; # Thêm header để kiểm tra cache
    }
}

}

Hãy nhớ tạo thư mục `/var/cache/nginx` và cấp quyền ghi cho người dùng Nginx.

6. Chặn URL (Block URL)

Bạn có thể chặn truy cập vào các URL cụ thể hoặc các mẫu URL bằng cách sử dụng khối `location` với điều kiện.

Ví dụ, chặn truy cập vào tệp `.env` nhạy cảm:

location ~ /\.env { deny all; return 403; }

Hoặc chặn các yêu cầu có chứa một chuỗi nhất định:

location ~* “bad_pattern” { deny all; return 403; }

Dấu `` cho biết regex match, `*` cho case-insensitive regex match, và `!` đảo ngược điều kiện.

Sai lầm thường gặp khi cấu hình Nginx

Trong quá trình làm việc với Nginx, một số lỗi phổ biến có thể gây ra sự cố:

Câu hỏi thường gặp về Nginx

Hỏi: Nginx có thể thay thế hoàn toàn Apache không?

Đáp: Nginx thường được sử dụng như một reverse proxy phía trước Apache hoặc các máy chủ ứng dụng khác. Nó xuất sắc trong việc xử lý các kết nối tĩnh và cân bằng tải. Trong nhiều trường hợp, Nginx có thể xử lý toàn bộ yêu cầu web, nhưng việc kết hợp Nginx và Apache vẫn là một kiến trúc phổ biến.

Hỏi: Làm thế nào để xem log của Nginx?

Đáp: Tệp log truy cập (access log) và log lỗi (error log) của Nginx thường nằm trong `/var/log/nginx/`. Bạn có thể cấu hình đường dẫn và định dạng log trong tệp `nginx.conf`.

Hỏi: `worker_processes` nên được đặt bằng bao nhiêu?

Đáp: Giá trị phổ biến nhất là đặt bằng số lượng CPU core của máy chủ để tối ưu hóa hiệu suất.

Hỏi: Tôi có thể sử dụng Nginx để phục vụ file tĩnh và làm proxy cho ứng dụng cùng lúc không?

Đáp: Chắc chắn rồi. Bạn có thể sử dụng các khối `location` khác nhau để chỉ định cách xử lý cho các loại yêu cầu khác nhau. Một `location` có thể phục vụ tệp tĩnh từ `root`, trong khi một `location` khác sử dụng `proxy_pass`.

Hỏi: Làm thế nào để cấu hình Nginx để tránh bị tấn công DDoS cơ bản?

Đáp: Bạn có thể sử dụng các chỉ thị như `limit_req_zone`, `limit_conn_zone` để giới hạn số lượng yêu cầu và kết nối từ một địa chỉ IP. Việc cấu hình cache hiệu quả cũng giúp giảm tải cho máy chủ.

Nắm vững cấu hình Nginx là một kỹ năng quan trọng cho bất kỳ ai làm việc với web server. Từ việc thiết lập HTTP, HTTPS, đến việc sử dụng `proxypass` để kết nối với ứng dụng backend, và tận dụng `cache` để tăng tốc độ, Nginx cung cấp một bộ công cụ mạnh mẽ. Việc biết cách chặn các URL không mong muốn cũng góp phần bảo vệ website của bạn.

Nếu bạn cần hỗ trợ SEO hoặc tối ưu website, liên hệ khaizinam.io.vn để được tư vấn chuyên sâu.

Hãy tiếp tục thực hành và khám phá thêm các tính năng của Nginx để tối ưu hóa hiệu suất và bảo mật cho dự án của bạn.


Chia sẻ bài viết:

Bài viết liên quan

Tổng hợp mức lương IT theo level tại TP.HCM và Hà Nội năm 2025 - 2026

Ngành IT tại Việt Nam tiếp tục giữ mặt bằng lương cao so với nhiều ngành khác, đặc biệt tập trung tại TP.HCM và Hà Nội. Hai thành phố này hiện là trung tâm tuyển dụng công nghệ lớn nhất cả nước, nơi tập trung nhiều công ty outsourcing, product, fintech, AI và startup quốc tế.

Top 5 web đọc truyện tranh miễn phí vẫn còn hoạt động hiện nay

Top 5 web đọc truyện tranh miễn phí vẫn còn hoạt động hiện nay 1. NetTruyen — Cái tên lâu đời không thể bỏ qua NetTruyen là một trong những nền tảng đọc truyện tranh online lâu đời và quen thuộc nhất với cộng đồng Việt Nam.

Cách đàm phán lương khi mới ra trường — fresher IT không nên bỏ qua

Đàm phán lương fresher IT là quá trình thương lượng mức lương với nhà tuyển dụng sau khi nhận được offer — một bước mà hầu hết sinh viên mới ra trường bỏ qua hoàn toàn vì nghĩ "fresher thì không có quyền mặc cả." Thực tế ngược lại: hầu hết công ty đều chừa ra biên độ thương lượng ngay cả với fresher, và không đàm phán nghĩa là bạn đang tự để lại tiền trên bàn mà không biết.

Bị từ chối phỏng vấn IT — tôi đã làm gì để pass lần sau

Bị từ chối phỏng vấn IT là trải nghiệm mà hầu như mọi fresher và junior developer đều trải qua ít nhất một lần — thường là nhiều hơn thế. Cú từ chối đầu tiên có thể khiến bạn nghi ngờ năng lực bản thân, nhưng thực tế phần lớn các trường hợp thất bại đều có nguyên nhân cụ thể, có thể xác định và có thể khắc phục trong vòng vài tuần nếu bạn biết nhìn đúng chỗ.

CV IT 1 Trang Hay 3 Trang: Bài Học Đắt Giá Khi Để AI Build CV Giúp Bạn

CV IT 1 trang hay nhiều trang — đây là câu hỏi tưởng đơn giản nhưng lại quyết định xem bạn có được HR gọi điện hay chỉ lặng lẽ bị cho vào thùng rác. Bài viết này chia sẻ trải nghiệm thực tế từ một developer sau khi rebuild CV bằng AI, nhận ra sự thật phũ phàng về cách HR thực sự đọc hồ sơ năm 2026.

Cảnh báo chiêu trò lừa đảo "Black MMO PayinApp" 2026

Trong thời đại số, khi các nền tảng mạng xã hội như Facebook, Telegram trở thành nơi giao thương nhộn nhịp, thì cũng là lúc những "con mồi" tiềm năng bị đưa vào tầm ngắm của những kẻ lừa đảo. Chưa bao giờ, những lời mời chào về một công việc "việc nhẹ lương cao", "ngồi nhà kiếm tiền triệu", hay "không cần kinh nghiệm, được đào tạo từ A-Z" lại xuất hiện dày đặc như hiện nay.

Giới thiệu về MySQL Replication Master-Slave

MySQL Replication là một quá trình cho phép bạn dễ dàng duy trì nhiều bản sao của dữ liệu MySQL bằng cách cho họ sao chép tự động từ một master tạo ra một cơ sở dữ liệu slave. Điều này rất hữu ích vì nhiều lý do bao gồm việc tạo điều kiện cho sao lưu cho dữ liệu, một cách để phân tích nó mà không sử dụng các cơ sở dữ liệu chính, hoặc chỉ đơn giản là một phương tiện để mở rộng ra.

Chứng Chỉ NVSP: Giải Pháp Việc Làm Thông Minh Cho Sinh Viên IT Thời AI 2026

Tìm hiểu chứng chỉ Nghiệp vụ Sư phạm (NVSP) là gì, điều kiện đăng ký, chi phí, và tại sao con đường trở thành giảng viên — dạy tại trường đại học, cao đẳng hoặc trung tâm đào tạo IT — lại là lựa chọn việc làm ổn định và có giá trị lâu dài cho developer Việt Nam giữa làn sóng AI 2026.

Cách Tạo CV IT Cho Fresher Bằng LaTeX Và AI

Bạn vừa tốt nghiệp, cầm tấm bằng IT trên tay nhưng gửi hàng chục CV đi mà chỉ nhận lại sự im lặng? Tôi cũng từng như bạn, loay hoay với Microsoft Word, cố gắng căn chỉnh từng dòng kẻ để rồi khi xuất PDF, định dạng lại nhảy lung tung. Nỗi đau lớn nhất của dân kỹ thuật không phải là thiếu kỹ năng, mà là không biết cách "đóng gói" giá trị bản thân vào một bản CV chuyên nghiệp.

Cơn Ác Mộng Lập Trình: Mất Sạch Index Google Chỉ Trong 1 Đêm Vì Một Dòng Code Chat Widget!

Web bạn đột nhiên bốc hơi khỏi Google không rõ lý do? Khám phá ngay case study thực tế từ một đoạn mã chat widget chặn Googlebot và cách fix triệt để. Đọc ngay!


Bài trước
Cơn Ác Mộng Lập Trình: Mất Sạch Index Google Chỉ Trong 1 Đêm Vì Một Dòng Code Chat Widget!
Bài tiếp theo
Tối ưu thời gian setup môi trường dự án với Docker cho VPS cấu hình thấp