Cấu hình và Tối ưu Hóa Nginx Từ Nguồn: Hướng dẫn Thực hành

Nginx, một máy chủ Web hiệu suất cao và là proxy ngược, đóng vai trò quan trọng trong kiến trúc Web hiện đại. Dù hầu hết các bản phân phối Linux cung cấp gói Nginx đã biên dịch sẵn, việc xây dựng từ mã nguồn mang lại sự linh hoạt và khả năng tối ưu hóa tốt hơn. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng lệnh configure để xây dựng Nginx từ mã nguồn và giải thích ý nghĩa của các tham số cấu hình.

Tại sao nên xây dựng Nginx từ mã nguồn?

  1. Mô-đun tùy chỉnh: Chỉ bao gồm các mô-đun cần thiết để giảm kích thước tệp nhị phân.
  2. Tính năng mới nhất: Lấy các tính năng và sửa lỗi mới nhất từ kho lưu trữ chính thức.
  3. Tối ưu hóa hiệu suất: Tối ưu cho phần cứng và trường hợp sử dụng cụ thể.
  4. Yêu cầu đặc biệt: Thêm các mô-đun bên thứ ba hoặc tùy chỉnh sâu hơn.

Tải xuống mã nguồn Nginx

Sử dụng wget để tải phiên bản ổn định mới nhất của Nginx:

wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

Phân tích các tham số cấu hình cơ bản

Các tham số cấu hình đường dẫn:

./configure \
    --prefix=/opt/webserver/nginx \
    --sbin-path=/usr/local/bin/nginxbinary \
    --conf-path=/etc/nginxcfg/nginx.conf \
    --pid-path=/var/run/nginxd.pid \
    --error-log-path=/var/log/nginxd/error.log \
    --http-log-path=/var/log/nginxd/access.log
  • --prefix: Định nghĩa thư mục gốc của Nginx.
  • --sbin-path: Đặt đường dẫn file thực thi.
  • --conf-path: Vị trí file cấu hình chính.

Cấu hình liên quan đến bảo mật

Đặt người dùng và nhóm chạy:

./configure \
    --user=webuser \
    --group=webgrp

Mô-đun HTTP

Kích hoạt các mô-đun HTTP phổ biến:

./configure \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module

Vô hiệu hóa các mô-đun không cần thiết:

./configure \
    --without-http_autoindex_module \
    --without-http_ssi_module

Các phụ thuộc thư viện bên ngoài

Cài đặt thư viện PCRE:

wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
tar -zxvf pcre-8.45.tar.gz
./configure --with-pcre=../pcre-8.45

Cài đặt OpenSSL:

wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
tar -zxvf openssl-1.1.1t.tar.gz
./configure --with-openssl=../openssl-1.1.1t

Tham số tối ưu hóa hiệu suất

Tuỳ chọn biên dịch tối ưu hóa:

./configure \
    --with-cc-opt="-O3 -march=native -pipe" \
    --with-ld-opt="-Wl,-O2,--as-needed"

Tối ưu xử lý kết nối:

./configure \
    --with-threads \
    --with-file-aio \
    --without-select_module \
    --without-poll_module

Ví dụ cấu hình môi trường sản xuất

Cấu hình hoàn chỉnh cho môi trường sản xuất:

./configure \
    --prefix=/opt/webserver/nginx \
    --sbin-path=/usr/local/bin/nginxbinary \
    --conf-path=/etc/nginxcfg/nginx.conf \
    --pid-path=/var/run/nginxd.pid \
    --error-log-path=/var/log/nginxd/error.log \
    --http-log-path=/var/log/nginxd/access.log \
    --user=webuser \
    --group=webgrp \
    --with-threads \
    --with-file-aio \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --with-pcre=../pcre-8.45 \
    --with-openssl=../openssl-1.1.1t

Cài đặt và xác minh

Thực hiện cài đặt sau khi biên dịch:

make -j$(nproc)
sudo make install

Xác minh cài đặt:

nginxbinary -t  # Kiểm tra cấu hình
nginxbinary -V  # Xem tham số biên dịch

Quản lý dịch vụ hệ thống

Tạo dịch vụ systemd:

sudo systemctl enable nginxd
sudo systemctl start nginxd

Thẻ: nginx Cấu hình Nhiều luồng Tối ưu hóa hiệu suất PCRE

Đăng vào ngày 27 tháng 6 lúc 03:26