Cấu hình nginx cơ bản - Phần 1
Last updated
Last updated
Hiện tại tôi vừa có một quãng thời gian tìm hiểu về nginx. Do cũng chưa làm việc trên các web server khác như apache hay IIS nên tôi chưa có những so sánh đánh giá giữa các loại :D Loạt bài này xem như hướng dẫn từ A-Z cho người mới bắt đầu. Hi vọng bài viết sẽ giúp các bạn đi qua nhanh những trở ngại mà tôi đã gặp.
Trong khuôn khổ bài viết này, tôi sẽ đi vào các chủ đề sau.
Biên dich cài đặt nginx
Tạo init script
Tạo một vhost
Cấu hình để nginx xử lý php
Phân quyền thư mục website
Cấu hình basic authention
Giới hạn truy cập theo IP
Hỗ trợ SSL
Biến đổi nginx hỗ trợ load balancing
Biến đổi nginx thành caching proxy
Xác định nguồn gốc địa lý của http request
Tính đến thời điểm viết bài này thì nginx đã release ra version 1.8.0 Trong trang download của nginx có hai nhánh: stable và mainline. Mainline là nhánh cho phát triển. Ở đây tôi lựa chọn nhánh stable phù hợp với các sản phẩm chạy trên product server
wget http://nginx.org/download/nginx-1.8.0.tar.gz tar xvzf nginx-1.8.0.tar.gz cd nginx-1.8.0
Chuẩn bị một số package phục vụ cho việc biên dịch nginx: yum install make gcc gcc-c++ pcre-devel zlib-devel openssl-devel
Tiến hành biên dịch: ./configure --with-http_ssl_module \ --with-pcre \ --with-file-aio \ --with-http_stub_status_module \ --with-http_realip_module \ --with-http_gzip_static_module make make install
http_ssl_module hỗ trợ https pcre hỗ trợ regular expression matching file aio hỗ trợ input/output bất đồng bộ realip_module hỗ trợ lấy real ip của origin server nằm đằng sau proxy gzip_static_module hỗ trợ nén data trả về cho những client có hỗ trợ gzip.
Chuẩn bị một file config: /etc/sysconfig/nginx
Init script có nội dung như sau:
Sau đó tôi gán quyền execute cho init script
chmod u+x /etc/init.d/nginx
Chuẩn bị một user nginx
useradd -d /dev/null -c "nginx user" -s /sbin/nologin nginx
Trong trường hợp cài đặt nginx từ các bản pre build trên repository thì tôi đã có sẵn các init script này rồi.
Kết thúc phần cài đặt. Trong loạt bài phần 2 tôi sẽ giới thiệu cách cấu hình vhost và sử dụng php-fpm đễ vhost xử lý được file php.