16/09/2018, 13:10

Làm thế nào để cài đặt Nginx trên Ubuntu 18.04 [Quickstart]

Giới thiệu Nginx là một trong những máy chủ web 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 hơn so với Apache trong hầu hết các trường hợp và có thể được sử dụng như một máy chủ web hoặc proxy ...

Giới thiệu

Nginx là một trong những máy chủ web 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 hơn so với Apache trong hầu hết các trường hợp và có thể được sử dụng như một máy chủ web hoặc proxy ngược.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Nginx trên máy chủ Ubuntu 18.04 của bạn. Để có phiên bản chi tiết hơn của hướng dẫn này, vui lòng tham khảo Làm thế nào để cài đặt Nginx trên Ubuntu 18.04.

Điều kiện tiên quyết

Trước khi bạn bắt đầu hướng dẫn này, bạn nên có những điều sau đây:

  • Một máy chủ Ubuntu 18.04 và một người dùng thông thường, không phải root với quyền sudo. Ngoài ra, bạn sẽ cần phải kích hoạt một tường lửa cơ bản để chặn các cổng không cần thiết. Bạn có thể tìm hiểu cách định cấu hình tài khoản người dùng thông thường và thiết lập tường lửa bằng cách thực hiện theo hướng dẫn cài đặt máy chủ ban đầu cho Ubuntu 18.04.

Khi bạn có sẵn tài khoản, hãy đăng nhập với tư cách người dùng không phải root của bạn để bắt đầu.

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

Bởi vì Nginx có sẵn trong kho lưu trữ mặc định của Ubuntu, bạn có thể cài đặt nó bằng cách sử dụng apt hệ thống đóng gói.

Cập nhật chỉ mục gói địa phương của bạn:

sudo apt update

Cài đặt Nginx:

sudo apt install nginx

Bước 2 - Điều chỉnh tường lửa

Kiểm tra khả dụng ufw hồ sơ ứng dụng:

sudo ufw app list

OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Hãy bật tiểu sử hạn chế nhất sẽ vẫn cho phép lưu lượng truy cập bạn đã định cấu hình, cho phép lưu lượng truy cập trên cổng 80:

sudo ufw allow 'Nginx HTTP'

Xác minh thay đổi:

sudo ufw status

OutputStatus: 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 Máy chủ Web của bạn

Kiểm tra với systemd init hệ thống để đảm bảo dịch vụ đang chạy bằng cách gõ:

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 Fri 2018-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

Truy cập trang đích Nginx mặc định để xác nhận rằng phần mềm đang chạy đúng thông qua địa chỉ IP của bạn:

http://your_server_ip

Bạn sẽ thấy trang đích Nginx mặc định:

Nginx default page

Bước 4 - Thiết lập các khối máy chủ (Được khuyến nghị)

Khi sử dụng máy chủ web Nginx, bạn có thể sử dụng khối máy chủ (tương tự như các máy chủ ảo trong Apache) để đóng gói chi tiết cấu hình và lưu trữ nhiều hơn một tên miền từ một máy chủ duy nhất. Chúng tôi sẽ thiết lập một miền được gọi là example.com, nhưng bạn nên thay thế bằng tên miền của riêng bạn. Để tìm hiểu thêm về cách thiết lập tên miền với DigitalOcean, hãy xem giới thiệu về DNS DigitalOcean.

Tạo thư mục cho example.com, sử dụng -p gắn cờ để tạo bất kỳ thư mục cha mẹ cần thiết nào:

sudo mkdir -p /var/www/example.com/html

Chỉ định quyền sở hữu thư mục:

sudo chown -R $USER:$USER /var/www/example.com/html

Quyền của gốc web của bạn phải chính xác nếu bạn chưa sửa đổi umask nhưng bạn có thể đảm bảo bằng cách nhập:

sudo chmod -R 755 /var/www/example.com

Tạo mẫu index.html trang sử dụng nano hoặc trình chỉnh sửa yêu thích của bạn:

nano /var/www/example.com/html/index.html

Bên trong, thêm HTML mẫu sau:

/var/www/example.com/html/index.html

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

Lưu và đóng tệp khi bạn hoàn tất.

Tạo một khối máy chủ mới tại /etc/nginx/sites-available/example.com:

sudo nano /etc/nginx/sites-available/example.com

Dán vào khối cấu hình sau, được cập nhật cho thư mục mới và tên miền của chúng tôi:

/etc/nginx/sites-available/example.com

server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

Lưu và đóng tệp khi bạn hoàn tất.

Bật tệp bằng cách tạo liên kết từ tệp đến sites-enabled danh mục:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Hai khối máy chủ hiện được bật và được định cấu hình để phản hồi các yêu cầu dựa trên listen và server_name chỉ thị:

  • example.com: Sẽ trả lời các yêu cầu cho example.com và www.example.com.
  • default: Sẽ phản hồi mọi yêu cầu trên cổng 80 không khớp với hai khối khác.

Để tránh một vấn đề bộ nhớ thùng băm có thể nảy sinh từ việc thêm các tên máy chủ bổ sung, cần phải điều chỉnh một giá trị duy nhất trong /etc/nginx/nginx.conf tập tin. Mở tập tin:

sudo nano /etc/nginx/nginx.conf

Tìm server_names_hash_bucket_size chỉ thị và xóa # biểu tượng để bỏ ghi chú dòng:

/etc/nginx/nginx.conf

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Kiểm tra lỗi cú pháp:

sudo nginx -t

Khởi động lại Nginx để kích hoạt các thay đổi của bạn:

sudo systemctl restart nginx

Nginx bây giờ sẽ phục vụ tên miền của bạn. Bạn có thể kiểm tra điều này bằng cách điều hướng đến http://example.com, nơi bạn sẽ thấy một cái gì đó như thế này:

Nginx first server block

Phần kết luận

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

Nếu bạn muốn xây dựng một ngăn xếp ứ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 ngăn xếp LEMP trên Ubuntu 18.04.

0