本文将介绍如何在 Ubuntu 上应用源码装置 OpenResty。
指标
- Ubuntu 18.04
- OpenResty 1.19.3.2
装置依赖
- 启用 HTTP 根本状态模块:
--with-http_stub_status_module
- 启用 HTTP gzip 动态文件压缩模块:--with-http_gzip_static_module
- 启用 HTTP/2 模块:--with-http_v2_module
zlib1g-dev
: the HTTP gzip module requires the zlib library.
apt-get update -yapt-get install -y libpcre3-dev \ libssl-dev \ perl \ make \ build-essential \ curl \ zlib1g-dev
下载 OpenResty
cd /optcurl -LO https://openresty.org/download/openresty-1.19.3.2.tar.gztar zxf openresty-1.19.3.2.tar.gz
装置 OpenResty
.configure \ --with-http_gzip_static_module \ --with-http_v2_module \ --with-http_stub_status_modulemakemake install
应用 systemd 治理 OpenResty 服务
编写 Service 文件
在 /usr/lib/systemd/system
目录下创立一个 openresty.service
文件,文件内容如下:
# 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 PlatformAfter=syslog.target network-online.target remote-fs.target nss-lookup.targetWants=network-online.target[Service]Type=forkingPIDFile=/usr/local/openresty/nginx/logs/nginx.pidExecStartPre=/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 reloadExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /usr/local/openresty/nginx/logs/nginx.pidTimeoutStopSec=5KillMode=mixed[Install]WantedBy=multi-user.target
启动 OpenResty
# 设置自启动systemctl enable openresty# 启动 OpenRestysystemctl start openresty# 查看 OpenResty 服务状态systemctl 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 process /usr/local/openresty/nginx/sbin/nginx -g daemon on; master_process on; └─12737 nginx: worker processJul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[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.
一键装置脚本
GitHub Gist