Thứ năm, 21/04/2016 | 00:00 GMT+7

Cách cài đặt Nginx trên Ubuntu 16.04

Nginx là một trong những web server phổ biến nhất trên thế giới và chịu trách nhiệm lưu trữ một số trang web lớn nhất và có lưu lượng truy cập cao nhất trên internet. Nó thân thiện với tài nguyên hơn Apache trong hầu hết các trường hợp và được dùng như một web server hoặc một Reverse Proxy .

Trong hướng dẫn này, ta sẽ thảo luận về cách cài đặt Nginx trên server Ubuntu 16.04 của bạn.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn nên có một regular user , không phải root có quyền sudo cấu hình trên server của bạn. Bạn có thể tìm hiểu cách cấu hình account regular user theo hướng dẫn cài đặt server ban đầu của ta cho Ubuntu 16.04 .

Khi bạn có account , hãy đăng nhập với quyền user không phải root của bạn để bắt đầu.

Bước 1: Cài đặt Nginx

Nginx có sẵn trong repository lưu trữ mặc định của Ubuntu, vì vậy quá trình cài đặt khá dễ dàng.

Vì đây là lần tương tác đầu tiên của ta với trình cài đặt gói apt trong phiên này, ta sẽ cập nhật index gói local để ta có quyền truy cập vào danh sách gói mới nhất. Sau đó, ta có thể cài đặt nginx :

  • sudo apt-get update
  • sudo apt-get install nginx

Sau khi chấp nhận thủ tục, apt-get sẽ cài đặt Nginx và mọi phụ thuộc vào server của bạn.

Bước 2: Điều chỉnh firewall

Trước khi có thể kiểm tra Nginx, ta cần cấu hình lại phần mềm firewall của bạn để cho phép truy cập vào dịch vụ. Nginx tự đăng ký như một dịch vụ với ufw , firewall của ta , khi cài đặt. Điều này làm cho việc cho phép truy cập Nginx khá dễ dàng.

Ta có thể liệt kê các cấu hình ứng dụng mà ufw biết cách làm việc bằng lệnh :

  • sudo ufw app list

Bạn sẽ nhận được một danh sách các profile ứng dụng:

Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Như bạn thấy , có ba cấu hình có sẵn cho Nginx:

  • Nginx Full : Cấu hình này mở cả cổng 80 ( truy cập web bình thường, không được mã hóa) và cổng 443 ( truy cập được mã hóa TLS / SSL)
  • Nginx HTTP : Cấu hình này chỉ mở cổng 80 ( truy cập web bình thường, không được mã hóa)
  • Nginx HTTPS : Cấu hình này chỉ mở cổng 443 ( truy cập được mã hóa TLS / SSL)

Bạn nên bật cấu hình chặn tối đa mà vẫn cho phép lưu lượng bạn đã cấu hình . Vì ta chưa cấu hình SSL cho server của bạn nên trong hướng dẫn này, ta chỉ cần cho phép lưu lượng truy cập trên cổng 80.

Bạn có thể kích hoạt tính năng này bằng lệnh :

  • sudo ufw allow 'Nginx HTTP'

Bạn có thể kiểm tra thay đổi bằng lệnh :

  • sudo ufw status

Bạn sẽ thấy truy cập HTTP được phép trong kết quả được hiển thị:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Bước 3: Kiểm tra Server Web của bạn

Khi kết thúc quá trình cài đặt, Ubuntu 16.04 khởi động Nginx. Web server đã được cài đặt và đang chạy.

Ta có thể kiểm tra bằng systemd init đảm bảo dịch vụ đang chạy bằng lệnh :

  • systemctl status nginx
Output
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2016-04-18 16:14:00 EDT; 4min 2s ago Main PID: 12857 (nginx) CGroup: /system.slice/nginx.service ├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on └─12858 nginx: worker process

Như bạn thấy ở trên, dịch vụ có vẻ chạy thành công . Tuy nhiên, cách tốt nhất để kiểm tra là thực sự truy cập một trang từ Nginx.

Bạn có thể truy cập trang đích Nginx mặc định để xác nhận phần mềm đang chạy bình thường. Bạn có thể truy cập thông tin này thông qua domain hoặc địa chỉ IP của server .

Nếu bạn chưa cài đặt domain cho server của bạn , bạn có thể tìm hiểu cách cài đặt domain với DigitalOcean tại đây.

Nếu bạn không muốn cài đặt domain cho server của bạn , bạn có thể sử dụng địa chỉ IP công cộng của server . Nếu bạn không biết địa chỉ IP của server của bạn , bạn có thể tìm bằng một số cách nhau từ dòng lệnh.

Hãy thử nhập vào dấu nhắc lệnh của server của bạn:

  • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Bạn sẽ nhận lại được một vài dòng. Bạn có thể thử từng cái trong trình duyệt web của bạn để xem chúng có hoạt động không.

Một giải pháp thay thế là nhập cái này, cái này sẽ cung cấp cho bạn địa chỉ IP công cộng của bạn khi được nhìn thấy từ một vị trí khác trên internet:

  • sudo apt-get install curl
  • curl -4 icanhazip.com

Khi bạn có địa chỉ IP hoặc domain của server , hãy nhập domain hoặc địa chỉ đó vào thanh địa chỉ của trình duyệt:

http://server_domain_or_IP 

Bạn sẽ thấy trang đích Nginx mặc định, sẽ trông giống như sau:

Trang mặc định của Nginx

Trang này chỉ được bao gồm với Nginx để cho bạn thấy rằng server đang chạy chính xác.

Bước 4: Quản lý tiến trình Nginx

Đến đây bạn đã cài đặt và chạy web server của bạn , ta có thể xem qua một số lệnh quản lý cơ bản.

Để dừng web server của bạn, có thể chạy lệnh:

  • sudo systemctl stop nginx

Để khởi động web server khi nó bị dừng, hãy nhập:

  • sudo systemctl start nginx

Để dừng và sau đó bắt đầu lại dịch vụ, hãy nhập:

  • sudo systemctl restart nginx

Nếu bạn chỉ thực hiện thay đổi cấu hình, Nginx có thể reload mà không làm mất kết nối . Để làm điều này, lệnh này được dùng :

  • sudo systemctl reload nginx

Theo mặc định, Nginx được cấu hình để khởi động tự động khi server khởi động. Nếu bạn không muốn vậy , bạn có thể tắt hành vi này bằng lệnh :

  • sudo systemctl disable nginx

Để bật lại dịch vụ khởi động khi server khởi động , có thể chạy lệnh:

  • sudo systemctl enable nginx

Bước 5: Làm quen với các file và folder Nginx quan trọng

Đến đây bạn đã biết cách tự quản lý dịch vụ, bạn nên dành vài phút để tự làm quen với một số folder và file quan trọng.

Nội dung

  • /var/www/html : Nội dung web thực tế, theo mặc định chỉ bao gồm trang Nginx mặc định mà bạn đã xem trước đó, được cung cấp từ folder /var/www/html . Điều này có thể được thay đổi bằng cách thay đổi các file cấu hình Nginx.

Cấu hình server

  • /etc/nginx : Thư mục cấu hình Nginx. Tất cả các file cấu hình Nginx đều nằm ở đây.
  • /etc/nginx/nginx.conf : Tệp cấu hình Nginx chính. Điều này có thể được sửa đổi để áp dụng các thay đổi đối với cấu hình global của Nginx.
  • /etc/nginx/sites-available/ : Thư mục chứa “khối server ” trên mỗi trang web. Nginx sẽ không sử dụng các file cấu hình được tìm thấy trong folder này trừ khi chúng được liên kết với folder sites-enabled (xem bên dưới). Thông thường, tất cả cấu hình khối server được thực hiện trong folder này, và sau đó được kích hoạt bằng cách liên kết đến folder khác.
  • /etc/nginx/sites-enabled/ : Thư mục lưu trữ “khối server ” được kích hoạt trên mỗi trang web. Thông thường, chúng được tạo bằng cách liên kết đến các file cấu hình được tìm thấy trong folder sites-available của sites-available .
  • /etc/nginx/snippets : Thư mục này chứa các đoạn cấu hình có thể được đưa vào ở những nơi khác trong cấu hình Nginx. Các phân đoạn cấu hình có thể lặp lại tiềm năng là thành phần tốt để cấu trúc lại thành các đoạn mã.

Nhật ký server

  • /var/log/nginx/access.log : Mọi yêu cầu đến web server của bạn đều được ghi lại trong file log này trừ khi Nginx được cấu hình để làm theo cách khác.
  • /var/log/nginx/error.log : Mọi lỗi Nginx sẽ được ghi lại trong log này.

Kết luận

Đến đây bạn đã cài đặt web server của bạn , bạn có nhiều tùy chọn về loại nội dung để phân phát và các công nghệ bạn muốn sử dụng để tạo ra trải nghiệm phong phú hơn.

Tìm hiểu cách sử dụng khối server Nginx tại đây. Nếu bạn muốn xây dựng một ứng dụng hoàn chỉnh hơn, hãy xem bài viết này về cách cấu hình LEMP trên Ubuntu 16.04 .


Tags:

Các tin liên quan

Cách tạo chứng chỉ SSL tự ký cho Nginx trong Ubuntu 16.04
2016-04-21
Cách cài đặt Discourse Behind Nginx trên Ubuntu 14.04
2016-04-19
Cách thiết lập Nginx với Hỗ trợ HTTP / 2 trên Ubuntu 16.04
2016-04-12
Cách thêm module gzip vào Nginx trên CentOS 7
2016-03-15
Cách thêm module gzip vào Nginx trên Ubuntu 14.04
2016-03-09
Cách thiết lập xác thực HTTP cơ bản với Nginx trên Ubuntu 14.04
2016-02-22
Cách thiết lập xác thực HTTP cơ bản với Nginx trên CentOS 7
2016-02-22
Cách bảo mật Nginx trên Ubuntu 14.04
2016-02-12
Cách bảo mật Nginx bằng Let's Encrypt trên CentOS 7
2016-01-26
Cách bảo mật Nginx bằng Let's Encrypt trên Ubuntu 14.04
2015-12-17