Thiết lập Nginx proxy OpenLiteSpeed
I. Tìm hiểu sơ lược về webserver Nginx và OpenLiteSpeed
1. Nginx là gì?
NGINX là một máy chủ dịch vụ web (web server) mã nguồn mở với các tính năng mở rộng Nginx cũng được sử dụng phổ biến như một máy chủ proxy (reverse proxy server), HTTP cache, dùng làm cân bằng tải (load balancer).
Đặc biệt trong các trường hợp cần phục vụ nội dung tĩnh (file hình ảnh, css, js, text,..), các yêu cầu truy vấn đồng thời số lượng lớn (high concurrent request), cho hiệu suất cao xử lý 10.000 kết nối cùng lúc.
Một vài tính năng cơ bản của NGINX.
- Reverse proxy kèm caching
- Cân bằng tải
- FastCGI cùng với caching
- Xử lý file tĩnh, file index và auto-indexing
- TLS/SSL với SNI
- Hỗ trợ nhúng Perl, Lua,..
- Hỗ trợ WebSockets
2. OpenLiteSpeed là gì
OpenLiteSpeed là một phiên bản mã nguồn mở của LiteSpeed Web Server Enterprise.
Cả hai webserver đều được phát triển và duy trì bởi cùng một nhóm và được giữ theo cùng tiêu chuẩn mã hóa chất lượng cao.
OpenLiteSpeed là phiên bản mã nguồn mở và miễn phí của phiên bản LiteSpeed Web Server Enterprise.
OpenLiteSpeed thừa hưởng hầu hết các tính năng cần thiết trong LiteSpeed Enterprise, kể cả LSCache (plugin hỗ trợ cache cho WordPress).
Các tính năng nổi bật
- Hỗ trợ Sendfile, Nén Gzip,Nén Brotli cho các tệp tĩnh
- All version of SPDY/2, 3, 3.1 and HTTP/2 support, Pipelined requests, TCP_FASTOPEN support, HTTP/2 Server Push
- Điểm mạnh của OpenLitespeed
- OpenLiteSpeed tương thích với mod_rewrite.
- OLS đi kèm với WebAdmin GUI tích hợp sẵn.
- Có kết nối Chống DDoS và điều chỉnh băng thông, tích hợp ModSecurity v3, v.v.
- Mô-đun bộ nhớ cache toàn trang tích hợp có khả năng tùy chỉnh cao và hiệu quả để mang lại trải nghiệm người dùng.
- Tự động triển khai hệ thống tối ưu hóa Tốc độ trang của Google với mô-đun mod_pagespeed.
- Native SAPI cho PHP cho phép các ứng dụng bên ngoài được viết bằng PHP chạy nhanh hơn tới 50%.
- Trải nghiệm mức tăng hiệu suất có thể đo lường được với OpenLiteSpeed và LSCache cho WordPress.
Tìm hiểu thêm các tính năng của OpenLiteSpeed có tham khảo tại: Trang Chủ
II. Các bước thực hiện cài đặt nginx proxy OpenLiteSpeed
Qua tìm hiểu sơ bộ các tính năng của hai webserver mã nguồn mở Nginx và OpenLiteSpeed thì bài hướng dẫn này kết hơp của hai lại nginx proxy OpenLiteSpeed
Với webserver nginx chưa hỗ trợ mod_rewrite thay vào đó việc này sẽ được OpenLiteSpeed hỗ trợ phía backend.
Bước 1: Cài đặt Nginx
Đầu tiên bạn hãy cài đặt webserver thứ nhất là NGINX. Nhưng trước khi cài đặt bạn hãy kiểm tra và tắt một số thành phần sau.
1.1 SELINUX
Để tắt Selinux bạn sử dụng các lệnh sau
systemctl disable firewalld systemctl stop firewalldsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # Kiểm tra status selinux đã disabled hoàn tắt nếu chưa cần reboot lại VPS setenforce 0 sestatus
1.2 Cài đặt các gói hỗ trợ webserver
Tiếp theo bạn cài đặt một số gói cần thiết với lệnh bên dưới
yum groupinstall " Development Tools" -y yum install zlib-devel pcre-devel openssl-devel wget -y yum install epel-release -y yum update -y reboot # Tiên hành reboot lại VPS
1.3 Cài đặt Nginx
Bước này sẽ cài đặt NGINX. Mình sẽ cài đặt nginx bằng lệnh yum nhanh chóng.
yum install nginx -y
Sau khi đã cài đặt thành công Nginx kiểm tra nginx đã hoạt động chưa với lệnh sau:
systemctl start nginx systemctl enable nginx systemctl status nginx
Tiếp theo bạn điều chỉnh lại file nginx.conf
. Để backup lại nginx.conf trong quá trình thao tác sai có thể phục hồi lại.
cd /etc/nginx/ cp nginx.conf nginx.conf.$(date +'%F_%H-%M-%S').bakup #kiểm tra lại lệnh ll ll hoặc ls
Tiếp tục điều chỉnh lại file nginx.conf với nội dung bên dưới.
worker_processes auto;
pid /var/run/nginx.pid;
events {
worker_connections 8096;
multi_accept on;
use epoll;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/html;
location / {
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
# File Cache Settings
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 2;
open_file_cache_errors on;
server_names_hash_bucket_size 64;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
## Enable caching of SSL sessions
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
include /etc/nginx/conf.d/*.conf;
}
vi nginx.conf # kiểm tra lỗi syntax khi thay đổi nội dung nginx -t # ở hình đã báo không có lỗi
Sau khi cài đặt hoàn tất mình tiến hành kiểm tra truy cập Nginx
mkdir -p /var/www/html/ echo "kiem tra da cai dat nginx thanh cong" > /var/www/html/index.html service nginx restart Redirecting to /bin/systemctl restart nginx.service curl http://softvn.info/ kiem tra da cai dat nginx thanh cong
Bước 2 cài đặt OpenLiteSpeed
2.1 Để cài đặt OpenLiteSpeed thực hiện lệnh sau:
Tiếp theo bạn cài đặt webserver thứ 2 là OpenLiteSpeed vào.
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm yum install openlitespeed -y
2.2 Cài đặt php 7.4 cho OpenLiteSpeed
Tiếp đến bạn cài đặt php cho webserver này. Và trong bài này mình sẽ ưu tiên cài đặt phiên bản php 7.4 và một số module đi kèm.
yum install lsphp74 lsphp74-gd lsphp74-json lsphp74-common lsphp74-process lsphp74-mbstring lsphp74-mysqlnd lsphp74-xml lsphp74-opcache lsphp74-mcrypt lsphp74-pdo lsphp74-imap lsphp74-bcmath lsphp74-pecl-memcache lsphp74-pecl-memcached lsphp74-pecl-redis lsphp74-pgsql lsphp74-zip -y
Sau khi cài đặt xong bạn truy cập http://ip:8088 xuất hiện như hình bên dưới là đã cài đặt OpenLiteSpeed thành công.
2.3 Thêm domain vào WebAdmin GUI
Mình sẽ không để cập cách thêm domain vào WebAdmin trong bài viết này. Mà ở một bài khác mình có hướng dẫn chi tiết từng bước thêm vào. Mời các bạn truy cập 3 link bên dưới để thực hiện nhé.
- Đầu tiên thì cần thao tác đổi passwd admin webadmin console theo hướng dẫn ở đây
- Thêm domain để quản lý từ webadmin theo hướng dẫn luôn ở đây
- Các bạn tham khảo chi tiết quá trình cài đặt OpenLiteSpeed ở đây
Bạn truy cập http://ip:7080 để vào webadmin kiểm tra lại.
Để kiểm tra domain kienthuclinux.info đã hoạt động chưa tiến hành kiểm tra lệnh sau:
echo "kiem tra openlitepeed thanh cong"> /usr/local/lsws/nginxlitespeed.kienthuclinux.info/index.php systemctl restart lsws curl http://kienthuclinux.info:8088 kiem tra openlitepeed thanh cong
Bước 3: Thực hiện Nginx proxy OpenLiteSpeed
Truy cập vào /etc/nginx/conf.d
tạo file vhost thực hiện proxy ở Nginx và thêm nội dung bên dưới về file kienthuclinux.info.conf
cd /etc/nginx/conf.d vi kienthuclinux.info.conf nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful service nginx restart Redirecting to /bin/systemctl restart nginx.service
server {
server_name kienthuclinux.info;
access_log off;
error_log /var/log/nginx/kienthuclinux.info.log crit;
location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ {
#root /home/kienthuclinux.info.conf;
expires 30d;
}
location / {
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_connect_timeout 30s;
proxy_redirect http:///kienthuclinux.info:8088 http://kienthuclinux.info;
proxy_pass http://127.0.0.1:8088/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Để kiểm tra xem việc thực hiện proxy thành công chưa bạn tiến hành như sau:
Khi thực hiện kiểm tra curl kienthuclinux.info thì nginx không thực hiện truy cập ở nội dung ở file /var/www/html/index.html curl kienthuclinux.info curl kienthuclinux.info:8088 Xuất hiện nội dung như truy cập port 8088 vậy là đã thực hiện proxy thành công
Bạn sẽ nhận được thông báo kết quả như sau.
Như vậy mình vừa hoàn tất hướng dẫn Thiết lập Nginx proxy OpenLiteSpeed. Hy vọng bài viết này mang đến cho bạn một kiến thức mới.
Chúc các bạn thực hiện thành công.
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 730 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.