This article explains how to install OpenResty on Ubuntu using the source code.
The target
- Ubuntu 18.04
- OpenResty 1.19.3.2
Install dependencies
- To enable theHTTP basic status module:
--with-http_stub_status_module
- Enable the HTTP gzip static file compression module: –with-http_gzip_static_module
- Enable the HTTP/2 module: –with-http_v2_module
zlib1g-dev
: the HTTP gzip module requires the zlib library.
apt-get update -y
apt-get install -y libpcre3-dev \
libssl-dev \
perl \
make \
build-essential \
curl \
zlib1g-dev
Copy the code
Download OpenResty
cd/ opt curl - LO, https://openresty.org/download/openresty-1.19.3.2.tar.gz tar ZXF openresty - 1.19.3.2. Tar. GzCopy the code
Install OpenResty
.configure \
--with-http_gzip_static_module \
--with-http_v2_module \
--with-http_stub_status_module
make
make install
Copy the code
Use Systemd to manage the OpenResty service
Writing a Service file
Create an openretsx. service file in /usr/lib/systemd/system. The file contents are as follows:
# Stop dance for OpenResty
# = = = = = = = = = = = = = = = = = = = = = = = = =
#
# ExecStop sends SIGSTOP (graceful stop) to OpenResty's nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=The OpenResty Application Platform
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -q -g 'daemon on; master_process on; '
ExecStart=/usr/local/openresty/nginx/sbin/nginx -g 'daemon on; master_process on; '
ExecReload=/usr/local/openresty/nginx/sbin/nginx -g 'daemon on; master_process on; ' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /usr/local/openresty/nginx/logs/nginx.pid
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
Copy the code
Start the OpenResty
# Set auto-start
systemctl enable openresty
# start OpenResty
systemctl start openresty
Check the OpenResty service statusSystemctl status openresty ● openresty. Service - The openresty Application Platform Loaded: loaded (/usr/lib/systemd/system/openresty.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-07-10 11:36:07 CST; 26min ago Process: 12735 ExecStart=/usr/local/openresty/nginx/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 12734 ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 12736 (nginx)
Tasks: 2 (limit: 1126) CGroup: / system. Slice/openresty service ├ ─ 12736 nginx: master the process/usr /local/openresty/nginx/sbin/nginx -g daemon on; master_process on; │ ├ ─12737 nginx: Molecular press 06/07/06 [1]: Starting The OpenResty Application Platform... Jul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[1]: openresty.service: Failed to parse PID from file /usr/local/openresty/nginx/logs/nginx.pid:
Jul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[1]: Started The OpenResty Application Platform.
Copy the code
One-click install script
GitHub Gist