Skip to content

Instantly share code, notes, and snippets.

@oNguyenThanhTung
Last active August 29, 2015 14:07
Show Gist options
  • Save oNguyenThanhTung/c5ab0b8d788bd3f87077 to your computer and use it in GitHub Desktop.
Save oNguyenThanhTung/c5ab0b8d788bd3f87077 to your computer and use it in GitHub Desktop.
Tìm hiểu và cài đặt nginx, lemp

Tìm hiểu và cài đặt nginx, LEMP

##Nginx là gì

Nginx (phát âm "engine x”) là một máy chủ proxy ngược mã nguồn mở (open source reverse proxy server) sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP , cũng như dùng làm cân bằng tải (load balancer), HTTP cache và máy chủ web (web server). Dự án Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn (high concurrency), hiệu suất cao và sử dụng bộ nhớ thấp. Nginx được biết đến bởi sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên.

##Đặc điểm của nginx

Không giống như các chương trình máy chủ khác, Nginx không dựa vào luồng (threads) để xử lý các truy vấn (request). Thay vào đó, Nginx sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous) và có khả năng mở rộng. Nginx có thể được sử dụng trên VPS cấu hình thấp nhất (như gói vps thấp nhất của digitalocean và vultr) cho đến một hệ thống rộng lớn như cloud server với nhiều clusters.

##Những tính năng của nginx

###Máy chủ HTTP Nginx

  • Có khả năng xử lý hơn 10.000 kết nối cùng lúc với bộ nhớ thấp
  • Phục vụ tập tin tĩnh (static files) và lập chỉ mục tập tin
  • Tăng tốc proxy ngược bằng bộ nhớ đệm (cache); cân bằng tải đơn giản và khả năng chịu lỗi
  • Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uwsgi, SCGI, và các máy chủ memcached
  • Kiến trúc modular; tăng tốc độ nạp trang bằng nén gzip tự động
  • Hỗ trợ mã hoá SSL và TLS
  • Cấu hình linh hoạt; lưu lại nhật ký truy vấn
  • Chuyển hướng lỗi 3XX-5XX
  • Rewrite URL (URL rewriting) dùng regular expressions
  • Hạn chế tỷ lệ đáp ứng truy vấn
  • Giới hạn số kết nối đồng thời hoặc truy vấn từ 1 địa chỉ
  • Khả năng nhúng mã PERL
  • Hỗ trợ và tương thích với IPv6
  • Hỗ trợ WebSockets
  • Hỗ trợ truyền tải file FLV và MP4

###Máy chủ mail proxy của Nginx

  • Các phương pháp xác thực :
    • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
    • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
    • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • Hỗ trợ SSL, STARTTLS và STLS

##Cách cài đặt Nginx hỗ trợ PHP5 trên Ubuntu 12.04.

###Thiết lập hostname

Chỉnh file /etc/hosts:

nano /etc/hosts

Nhập nội dung file /etc/hosts như sau và lưu lại:

127.0.0.1servernamelocalhost

Để hostname có hiệu lực mà không cần phải restart lại server, sử dụng lệnh sau:

hostname servername

Kiểm tra hostname bằng lệnh dưới đây

hostname

###Cài đặt MySQL 5

sudo apt-get install mysql-server mysql-client

###Cài đặt Nginx

sudo apt-get install nginx

Khởi động nginx

sudo /etc/init.d/nginx start

hoặc

sudo serive nginx start

Truy cập url: http://localhost, nếu thấy dòng chữ “Welcome to Nginx” nghĩa là Nginx đã được cài đặt thành công. Mặc định nginx sử dụng cổng 80 tuy nhiên có trường hợp port 80 đã được sử dụng bởi service khác thì tiến hành config port của nginx như sau

nano /etc/nginx/sites-available/default

để mở file config và thêm vào file dòng sau

listen [new_port]

[new_port]là port mới để chạy nginx

###Cài đặt PHP5

sudo apt-getinstallphp5php5-fpm

###Cấu hình cho nginx hỗ trợ PHP5

Cấu hình cho site mặc định của Nginx /etc/nginx/sites-available/default:

đổi

index index.html index.htm;

thành

indexindex.htmlindex.htmindex.php;

Thư mục root mặc định cho website là /usr/share/nginx/www. Nếu muốn đổi thành thư mục khác

đổi

root/usr/share/nginx/www;

thành

root /usr/www

(trong ví dụ này /usr/www là đường dẫn root mới)

Bỏ comment những dòng sau:

location~\.php${ fastcgi_pass 127.0.0.1:9000; fastcgi_indexindex.php; includefastcgi_params; }

Khởi động lại nginx

sudo/etc/init.d/nginxrestart

hoặc

sudo service nginx restart

###Kiểm tra PHP5

trongthư mục root tạo file info.php có nội dung như sau

<?php phpinfo(); ?>

Truy cập http://localhost/info.php. Nếu bạn thấy thông tin về PHP nghĩa là quá trình cài đặt đã thành công.

###Cấu hình PHP truy xuất MySQL

sudo apt-get install php5-mysql

tìm các module cho php và cài đặt

apt-cache search php5

Khởi động lại Nginx để module có hiệu lực:

sudo/etc/init.d/nginxrestart

Như vậy bạn đã hoàn thành việc cài đặt cơ bản nginx hỗ trợ php (LEMP) trên ubuntu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment