Tải và giải nén Nginx
Duyệt đến trang chính thức: https://nginx.org/en/download.html
- Mainline version: Phiên bản phát triển mới nhất, phù hợp cho thử nghiệm.
- Stable version: Phiên bản ổn định mới nhất – được khuyến nghị cho môi trường sản xuất.
- Legacy versions: Các phiên bản cũ đã ngừng hỗ trợ.
wget để tải trực tiếp mà không cần upload lên máy chủ:
sudo wget -qO- https://nginx.org/download/nginx-1.26.1.tar.gz | tar -xz -C /usr/local
Cài đặt các thư viện phụ thuộc
Nginx yêu cầu một số thư viện để hoạt động đúng:- PCRE: Hỗ trợ biểu thức chính quy tương thích Perl.
- zlib: Thư viện nén/giải nén dùng cho chức năng gzip trong HTTP.
- OpenSSL: Cung cấp hỗ trợ SSL/TLS cho HTTPS.
sudo yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
Khởi tạo cấu hình biên dịch
Di chuyển vào thư mục vừa giải nén, ví dụ:/usr/local/nginx-1.26.1. Chạy lệnh configure để tạo file Makefile:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module \
--with-http_v2_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-mail \
--with-mail_ssl_module
Các tùy chọn chính:
--prefix: Đường dẫn cài đặt Nginx.--pid-path: Lưu trữ ID tiến trình chính.--error-log-path,--http-log-path: Định nghĩa vị trí ghi log lỗi và truy cập.--with-http_ssl_module: Cho phép hỗ trợ HTTPS.--with-http_v2_module: Kích hoạt giao thức HTTP/2.--with-stream: Bật module xử lý kết nối TCP/UDP.--with-mail: Hỗ trợ proxy email (SMTP, IMAP, POP3).--with-file-aio: Tăng hiệu suất đọc ghi file qua I/O bất đồng bộ.
Biên dịch và cài đặt
Tạo thư mục tạm thời như đã chỉ định trong cấu hình:sudo mkdir -p /var/temp/nginx
Bắt đầu quá trình biên dịch:
make
Sau khi hoàn thành, tiến hành cài đặt:
make install
Bắt đầu Nginx
Vào thư mục cài đặt và khởi chạy:cd /usr/local/nginx/sbin
./nginx
Kiểm tra tiến trình đang chạy:
ps -ewwf | grep nginx
Dừng hoặc reload cấu hình:
./nginx -s stop– Dừng hoàn toàn../nginx -s reload– Reload cấu hình mà không gián đoạn dịch vụ.
Mở cổng truy cập từ bên ngoài
Cấu hình tường lửa để mở cổng 80:sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Lưu ý: Nếu hệ thống không có iptables, hãy cài bằng yum install -y iptables. Trong môi trường sản xuất, nên sử dụng công cụ quản lý tường lửa phù hợp thay vì tắt hoàn toàn.
Tạo Dockerfile cho Nginx
Dưới đây là một Dockerfile tối ưu hóa để xây dựng image Nginx từ nguồn:FROM centos:latest
# Thay thế kho repo mặc định bằng Aliyun
RUN mkdir -p /etc/yum.repos.d/bak && \
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak && \
curl -o /etc/yum.repos.d/CentOS-Base-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-8.repo && \
yum clean all && yum makecache
# Cài đặt tiện ích và alias
RUN sed -i "5i\\alias ll='ls -l'" /root/.bashrc && source /root/.bashrc
RUN yum install -y ncurses wget
# Tải và giải nén Nginx
RUN wget -qO- https://nginx.org/download/nginx-1.26.1.tar.gz | tar -xz -C /usr/local
# Cài đặt phụ thuộc
RUN yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel make
# Cấu hình, biên dịch và cài đặt
WORKDIR /usr/local/nginx-1.26.1
RUN ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module \
--with-http_v2_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-mail \
--with-mail_ssl_module && \
mkdir -p /var/temp/nginx && \
make && \
make install && \
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Xây dựng và chạy container
Xây dựng image:docker build -t nginx-custom:latest .
Chạy container với cổng 80 mapping:
docker run -d -p 80:80 --name web-server nginx-custom:latest
Kiểm tra trạng thái:
docker ps
Truy cập vào địa chỉ IP máy chủ Docker (ví dụ: http://192.168.31.30) để kiểm tra trang chủ Nginx.