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.
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.
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
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ề:
Ở 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.
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
Kết thúc !
Nếu có ý kiến đóng góp, vui lòng để lại bình luận bên dưới.