XÂY DỰNG WEB SERVER CHO GATEWAY
OpenResty là một máy chủ web mở rộng Nginx bằng cách gói nó với nhiều mô-đun Nginx hữu ích và thư viện Lua. OpenResty vượt trội trong việc mở rộng các ứng dụng và dịch vụ web. Ví dụ: một mô-đun mà nó bao gồm cho phép bạn viết mã Lua sẽ thực thi trực tiếp trong Nginx worker, cho phép các ứng dụng chạy với hiệu suất cao.
Trong hướng dẫn này, bạn sẽ cài đặt OpenResty từ source code; các gói ứng dụng được tạo sẵn cho một số bản phân phối linux có thể đã lỗi thời. Bạn cũng sẽ khám phá một số ứng dụng mẫu đơn giản với các tính năng độc đáo của OpenResty.
Để làm theo hướng dẫn này, bạn sẽ cần:
-
Một máy tính dùng Ubuntu 20 hoặc một board máy tính nhúng sử dụng phiên bản Linux tương đương với Ubuntu 20.
-
Không nên cài đặt Nginx. Nginx đã được tích hợp sẳn trong OpenResty, nếu bạn tự cài sẽ dễ gây xung đột.
1. Cài đặt OpenResty trên Linux distro
Cài đặt các gói package cần thiết
sudo apt-get install git libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential perl make libssl-dev
Lấy source code
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
Giải nén source vào /opt
sudo tar -xvf openresty-1.21.4.1.tar.gz -C /opt
Đi đến thư mục source openresty
cd /opt/openresty-1.21.4.1
Config openresty để biên dịch
./configure --with-cc-opt="-I/usr/include/openssl -I/usr/include" --with-ld-opt="-L/usr/include/openssl -L/usr/include" -j8 --prefix=/opt/openresty-1.21.4.1 --with-pcre-jit --with-ipv6
Biên dịch source code
make -j8
Install tools và thư viện đã được biên dịch
sudo make install
2. Tạo một ứng dụng đơn giản để thử nghiệm OpenResty
Tạo các thư mục chứa application
mkdir ~/app
cd ~/app
mkdir logs/ conf/
Tạo file cấu hình Nginx
Nội dung file ~/app/conf/nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>hello, world</p>")
';
}
}
}
Chạy sample web app
Để chạy sample web app chúng ta cần add đường dẫn file binary nginx đã được biên dịch trong OpenResty
PATH=/opt/openresty-1.21.4.1/nginx/sbin:$PATH
export PATH
nginx -p `pwd`/ -c ~/app/conf/nginx.conf
Test chạy web app với curl
curl http://localhost:8080/
Kết quả output phải là:
<p>hello, world</p>
3. Lapis
Lapis là gì ?
Lapis là một framework để xây dựng các ứng dụng web sử dụng MoonScript hoặc Lua chạy bên trong một phiên bản tùy chỉnh của Nginx có tên là OpenResty.
Cài đặt Lapis
sudo apt-get install luarocks
sudo luarocks install moonscript
sudo luarocks install lapis
sudo luarocks install --server=http://rocks.moonscript.org/manifests/leafo lapis
Tạo một sample để test chạy
mkdir lapistest
cd lapistest
lapis new --lua
lapis server
Lapis hỗ trợ tạo một sample ứng dụng tự động
mkdir lapistest
cd lapistest
lapis new --lua
lapis server
Test application với curl
curl http://localhost:8080
Bạn sẽ thấy output như sau
Welcome to Lapis 1.9.0
Test trên browser
http://192.168.1.200:8080/