Cài đặt và cấu hình Nginx trên CentOS

Quá trình triển khai dịch vụ web sử dụng Nginx đòi hỏi sự hiểu biết về các bước cài đặt cũng như cấu hình hệ thống. Bài viết này sẽ hướng dẫn bạn từng bước cài đặt và cấu hình Nginx trên hệ điều hành CentOS.

Chia sẻ tệp tin qua NFS

Trên máy chủ:

  • Cài đặt gói hỗ trợ NFS và RPC:
    yum install nfs-utils rpcbind -y
  • Tạo thư mục chia sẻ:
    mkdir /backup
  • Cấu hình chia sẻ trong /etc/exports:
    /backup 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
  • Tạo nhóm người dùng và tài khoản:
    groupadd www -g 666
    useradd www -u 666 -g 666 -M -r -s /sbin/nologin
  • Thay đổi quyền sở hữu cho thư mục:
    chown -R www.www /backup
  • Kích hoạt dịch vụ:
    systemctl start nfs-server rpcbind

Trên máy khách:

  • Cài đặt gói hỗ trợ NFS:
    yum install nfs-utils -y
  • Gắn kết thư mục từ máy chủ:
    mount -t nfs 172.16.1.31:/backup /opt

Cài đặt dịch vụ web

yum install httpd php php-devel -y
cd /var/www/html

Vấn đề hôm trước

  • Người dùng nfsnobody không được cấp quyền truy cập đầy đủ.
  • Việc gắn kết NFS không bền vững sau khi khởi động lại hệ thống.

Giải pháp:

  1. Sử dụng script khởi động tự động:
    vim /etc/rc.local
    /usr/bin/mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
    chmod +x /etc/rc.d/rc.local
  2. Cấu hình trong /etc/fstab:
    172.16.1.31:/web/upload /var/www/html/upload nfs defaults 0 0
    mount -a

Nội dung hôm nay

  • Tìm hiểu về dịch vụ web.
  • Triển khai Nginx và so sánh với Apache.

Giới thiệu về dịch vụ web

Dịch vụ web sử dụng kiến trúc Client/Server (B/S).

Các phần mềm máy chủ web phổ biến

  • Apache: Sử dụng mô hình mạng select, poll, hoặc epoll.
  • Nginx: Trang chủ chính thức: https://nginx.org/

Cài đặt Nginx

Cài đặt bằng YUM

  1. Tải xuống tệp cấu hình:
    vim /etc/yum.repos.d/nginx.repo
  2. Nội dung tệp:
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
  3. Cài đặt Nginx:
    yum install nginx -y
  4. Kích hoạt dịch vụ:
    systemctl start nginx

Cài đặt từ mã nguồn

  1. Tải gói:
    wget https://nginx.org/download/nginx-1.20.2.tar.gz
  2. Giải nén:
    tar -xf nginx-1.20.2.tar.gz
  3. Di chuyển vào thư mục:
    cd nginx-1.20.2
  4. Chuẩn bị cấu hình:
    ./configure
  5. Xây dựng:
    make
  6. Cài đặt:
    make install

Thêm module vào Nginx

Khi cài đặt từ mã nguồn, Nginx không tích hợp sẵn các module. Để thêm, cần thực hiện lại quá trình xây dựng:

  1. Chỉnh sửa cấu hình:
    ./configure --with-http_ssl_module
  2. Xây dựng lại:
    make
    make install
  3. Đảm bảo đường dẫn được thêm vào biến môi trường:
    export PATH=$PATH:/usr/local/nginx/sbin

Lệnh quản lý Nginx

  • -v: Hiển thị phiên bản.
  • -V: Hiển thị phiên bản và thông tin cấu hình.
  • -t: Kiểm tra cấu hình.
  • -T: Kiểm tra và chạy cấu hình.
  • -q: In lỗi ra màn hình.
  • -s: Điều khiển tiến trình:
    • stop: Dừng Nginx.
    • quit: Thoát an toàn.
    • reopen: Mở lại log.
    • reload: Tải lại cấu hình.
  • -p: Chỉ định thư mục làm việc.
  • -e: Chỉ định đường dẫn log lỗi.
  • -c: Chỉ định tệp cấu hình.
  • -g: Thiết lập tùy chọn toàn cục.
    nginx -g 'daemon off;'

Cấu hình Nginx

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
    use epoll;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    
    log_format json '{"@timestamp":"$time_iso8601",'
                  '"host":"$server_addr",'
                  '"service":"nginxTest",'
                  '"trace":"$upstream_http_ctx_transaction_id",'
                  '"log":"log",'
                  '"clientip":"$remote_addr",'
                  '"remote_user":"$remote_user",'
                  '"request":"$request",'
                  '"http_user_agent":"$http_user_agent",'
                  '"size":$body_bytes_sent,'
                  '"responsetime":$request_time,'
                  '"upstreamtime":"$upstream_response_time",'
                  '"upstreamhost":"$upstream_addr",'
                  '"http_host":"$host",'
                  '"url":"$uri",'
                  '"domain":"$host",'
                  '"xff":"$http_x_forwarded_for",'
                  '"referer":"$http_referer",'
                  '"status":"$status"}';

    access_log /var/log/nginx/access.log json;
    
    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name game.test.com;
        location / {
            root /opt/Super_Marie;
            index index.html;
        }
    }
}

Kiểm tra

  1. Upload ứng dụng web.
  2. Cấu hình trong /etc/nginx/conf.d/game.conf:
    server {
        listen 80;
        server_name game.test.com;
        location / {
            root /opt/Super_Marie;
            index index.html;
        }
    }
  3. Kiểm tra cấu hình:
    nginx -t
  4. Khởi động lại Nginx:
    systemctl restart nginx
  5. Cấu hình DNS:
    172.16.1.7 game.test.com

Thẻ: nginx linux Cài đặt Web Server NFS

Đăng vào ngày 21 tháng 6 lúc 17:14