Hướng dẫn cài đặt Nginx trên CentOS

Cài đặt Nginx trên CentOS

Nginx (phát âm là ‘engine X’) là một giải pháp thay thế cho Apache và được coi là một trong những máy chủ web HTTP phổ biến nhất thế giới. Trái ngược với Apache, Nginx có xu hướng tiêu thụ ít tài nguyên hơn và cải thiện khả năng phản hồi của máy chủ.

Trên hết, nó cho phép quản trị viên thiết lập các cấu hình nâng cao và có thể giải quyết lượng lớn các kết nối cùng lúc. Bên cạnh việc phù hợp với máy chủ web HTTP, Nginx còn hoạt động như một proxy ngược, bộ cân bằng tải và máy chủ mail tiêu chuẩn.

Điều kiện để cài đặt Nginx

  • Một Vps/ Dedicated Server mới
  • Hệ điều hành CentOS
  • RAM tối thiểu 1GB
  • HDD/ SSD tối thiểu 15GB
  • Quyền đăng nhập Root
  • Thiết lập SELinux đúng cách.
  • Một địa chỉ IP công khai

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cài đặt và cấu hình Nginx trên CentOS 7.

1. Cập nhật hệ thống

# yum -y update

-y là một tham số tùy chọn. Nó phục vụ để tránh các câu hỏi xác nhận ở các bước tiếp theo.

2. Cài đặt gói bổ sung EPEL

Nginx không có sẵn trong CentOS, vì vậy bạn cần cài đặt EPEL (Extra Packages for Enterprise Linux) có sẵn trên máy chủ. EPEL được sử dụng miễn phí và cung cấp nhiều gói mã nguồn mở.

Để cài đặt EPEL, chạy lệnh:

# yum install -y epel-release

3. Cài đặt Nginx

Để cài đặt phiên bản Nginx mới nhất bạn cần tạo một tệp nginx.repo tương tự đường dẫn /etc/yum.repos.d/nginx.repo.

Để tạo một tệp nginx.repo, chạy lệnh:

# sudo nano /etc/yum.repos.d/nginx.repo

Dán nội dung bên dưới vào:

[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

Sau khi cấu hình xong, bấm ctrl+ O và nhấn Enter để lưu lại, bấm ctrl+ X để thoát khỏi bảng điều khiển Linux.

Bây giờ, bạn có thể cài đặt Nginx bằng cách chạy lệnh yum:

# yum install -y nginx

Khởi động Nginx

Phiên bản Nginx của bạn đã được cài đặt trên máy chủ của bạn. Tuy nhiên nó sẽ không tự động khởi động sau khi cài đặt các bước trên.

Để khởi động Nginx, chạy lệnh:

# sudo systemctl start nginx

Sau khi bạn nhấn enter, sẽ không nhận được giá trị nào trả về. Tuy nhiên, Nginx có thể đã được kích hoạt. Để kiểm tra chắc chắn trạng thái của nó, chạy lệnh:

# sudo systemctl status nginx

Kết quả trả về:
nginx active

Ở hình trên có một đoạn văn bản màu xanh lục với nội dung ‘active (running).’ thì chứng tỏ Nginx đã hoạt động. Nếu bạn không thể tìm thấy nó hoặc nhìn thấy chữ “Failed”, phiên bản Nginx của bạn có thể đã không khởi động hoặc bị lỗi.

Lưu ý: Nếu bạn đã có một máy chủ Apache đang chạy, bạn cần phải tắt nó trước khi khởi động Nginx. Hãy nhớ rằng việc vô hiệu hóa Apache sẽ làm ngừng hoạt động bất kỳ trang web nào mà bạn đang chạy trên máy chủ này.

Để dừng dịch vụ Apache, sử chạy lệnh:

# sudo service httpd stop

Mặc dù bạn đã tắt Apache, nhưng nó vẫn có thể tự động khởi động lại trong quá trình bạn khởi động lại máy chủ. 
Tắt tự động bật Apache bằng cách chạy lệnh:

sudo systemctl disable httpd

Cấu hình tự khởi động Nginx

Hầu hết các quản trị viên muốn đảm bảo rằng NGINX sẽ tự động khởi động lại sau khi máy chủ reboot.
Để áp dụng điều này, chạy lệnh:

# systemctl enable nginx

Cấu hình Firewall

CentOS 7 bật tường lửa theo mặc định và chặn quyền truy cập vào các cổng 80 (http) và 443 (https).

Để cho phép lưu lượng HTTP và HTTPS, hãy chạy các lệnh:

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

Xác minh cài đặt Nginx

Cách dễ nhất để kiểm tra xem Nginx có đang chạy đúng cách hay không là truy cập địa chỉ IP máy chủ của bạn. Chỉ cần mở trình duyệt web của bạn và truy cập http://server_IP_or_domain_name/

Nếu bạn chưa biết địa chỉ IP của máy chủ của bạn, hãy tìm địa chỉ IP bằng lệnh:

# ip a

Kết quả trả về như sau:

root@k3host:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
    link/ether 56:00:03:ad:0e:10 brd ff:ff:ff:ff:ff:ff
    inet 28.32.12.96/23 brd 45.77.31.255 scope global dynamic enp1s0
       valid_lft 62848sec preferred_lft 62848sec
    inet6 fe80::5400:3ff:fead:e10/64 scope link
       valid_lft forever preferred_lft forever
root@k3host:~#

Địa chỉ IP của bạn sẽ hiện lên là 28.32.12.96/22. Sao chép địa chỉ IP và dán vào trình duyệt của bạn. Bạn sẽ thấy trang chào mừng mặc định của Nginx như bên dưới.

nginx default screen
Cách giải quyết lỗi “test failed”
Nếu bạn nhận được thông báo lỗi “test failed”, có thể tệp nginx.conf mặc định hoặc địa chỉ IP đang gặp sự cố.

Nginx lắng nghe IPv4 và IPv6, theo mặc định. Thử nghiệm của bạn sẽ không thành công nếu máy chủ của bạn không hỗ trợ IPv6. Tuy nhiên, điều này có thể được khắc phục bằng cách sửa đổi tệp cấu hình chính.

Mở tệp cấu hình chính, /etc/nginx/nginx.conf. Tìm dòng:

listen [::]:80 default_server;

Thêm ‘#’ ở đầu dòng. Nó sẽ giống như sau:

# listen [::]:80 default_server;

Lưu lại và tại lại Nginx bằng lệnh:

# systemctl reload nginx

Truy cập lại địa chỉ IP máy chủ của bạn trong trình duyệt, bạn sẽ thấy trang mặc định của Nginx.

Quản lý và tác vụ Nginx

Các lệnh cơ bản trong Nginx

Tạm dừng Nginx:
Để tạm dừng Nginx, chạy lệnh:

# systemctl stop nginx

Khởi động lại Nginx:
Để khởi động lại Nginx, chạy lệnh:

# systemctl restart nginx

Tải lại Nginx:

# systemctl reload nginx

Tắt Nginx:
Nếu bạn muốn ngừng sử dụng Nginx sau khi máy chủ reboot, chạy lệnh:

# systemctl disable nginx

4. Kết luận !

Vậy là đã kết thúc quá trình cài đặt Nginx trên CentOS. Nếu có ý kiến đóng góp, vui lòng để lại bình luận bên dưới.

5/5 - (18 bình chọn)

Bình luận

Email của bạn sẽ không được hiển thị công khai.