mirror of
https://git.freebsd.org/ports.git
synced 2025-05-01 02:56:39 -04:00
Update NGINX to 1.24.0 Overview of the changes from nginx-devel. Osa has made many good changes in the last devel phases. These have been adopted into the nginx port (httpv3 ....). Also all modules were updated to the latest version Sponsored by: Netzkommune GmbH
158 lines
4.1 KiB
Bash
158 lines
4.1 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: nginx
|
|
# REQUIRE: LOGIN cleanvar
|
|
# KEYWORD: shutdown
|
|
|
|
#
|
|
# Add the following lines to /etc/rc.conf to enable nginx:
|
|
# nginx_enable (bool): Set to "NO" by default.
|
|
# Set it to "YES" to enable nginx
|
|
# nginx_profiles (str): Set to "" by default.
|
|
# Define your profiles here.
|
|
# nginx_pid_prefix (str): Set to "" by default.
|
|
# When using profiles manually assign value to "nginx_"
|
|
# for prevent collision with other PIDs names.
|
|
# nginxlimits_enable (bool): Set to "NO" by default.
|
|
# Set it to yes to run `limits $limits_args`
|
|
# just before nginx starts.
|
|
# nginx_reload_quiet (bool): Set to "NO" by default.
|
|
# Set it to yes to suppress info output when testng config.
|
|
# nginx_flags (str): Set to "" by default.
|
|
# Extra flags passed to start command.
|
|
# nginxlimits_args (str): Default to "-e -U %%WWWOWN%%"
|
|
# Arguments of pre-start limits run.
|
|
# nginx_http_accept_enable (bool): Set to "NO" by default.
|
|
# Set to yes to check for accf_http kernel module
|
|
# on start-up and load if not loaded.
|
|
# nginx_sig_stop (str): Default to "TERM"
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="nginx"
|
|
rcvar=nginx_enable
|
|
|
|
start_precmd="nginx_prestart"
|
|
stop_precmd="nginx_prestop"
|
|
restart_precmd="nginx_checkconfig"
|
|
reload_precmd="nginx_checkconfig"
|
|
configtest_cmd="nginx_checkconfig"
|
|
gracefulstop_cmd="nginx_gracefulstop"
|
|
upgrade_precmd="nginx_checkconfig"
|
|
upgrade_cmd="nginx_upgrade"
|
|
command="%%PREFIX%%/sbin/nginx"
|
|
_pidprefix="%%NGINX_RUNDIR%%"
|
|
pidfile="${_pidprefix}/${name}.pid"
|
|
_tmpprefix="%%NGINX_TMPDIR%%"
|
|
required_files=%%PREFIX%%/etc/nginx/nginx.conf
|
|
extra_commands="reload configtest upgrade gracefulstop"
|
|
|
|
[ -z "$nginx_enable" ] && nginx_enable="NO"
|
|
[ -z "$nginxlimits_enable" ] && nginxlimits_enable="NO"
|
|
[ -z "$nginxlimits_args" ] && nginxlimits_args="-e -U %%WWWOWN%%"
|
|
[ -z "$nginx_http_accept_enable" ] && nginx_http_accept_enable="NO"
|
|
[ -z "$nginx_reload_quiet" ] && nginx_reload_quiet="NO"
|
|
|
|
load_rc_config $name
|
|
|
|
if [ -n "$2" ]; then
|
|
profile="$2"
|
|
if [ "x${nginx_profiles}" != "x" ]; then
|
|
pidfile="${_pidprefix}/${nginx_pid_prefix}${profile}.pid"
|
|
eval nginx_configfile="\${nginx_${profile}_configfile:-}"
|
|
if [ "x${nginx_configfile}" = "x" ]; then
|
|
echo "You must define a configuration file (nginx_${profile}_configfile)"
|
|
exit 1
|
|
fi
|
|
required_files="${nginx_configfile}"
|
|
eval nginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}"
|
|
eval nginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}"
|
|
eval nginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}"
|
|
eval nginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}"
|
|
nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\" ${nginx_flags}"
|
|
else
|
|
echo "$0: extra argument ignored"
|
|
fi
|
|
else
|
|
if [ "x${nginx_profiles}" != "x" -a "x$1" != "x" ]; then
|
|
for profile in ${nginx_profiles}; do
|
|
echo "===> nginx profile: ${profile}"
|
|
%%PREFIX%%/etc/rc.d/nginx $1 ${profile}
|
|
retcode="$?"
|
|
if [ "0${retcode}" -ne 0 ]; then
|
|
failed="${profile} (${retcode}) ${failed:-}"
|
|
else
|
|
success="${profile} ${success:-}"
|
|
fi
|
|
done
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# tmpfs(5)
|
|
nginx_checktmpdir()
|
|
{
|
|
if [ ! -d ${_tmpprefix} ] ; then
|
|
install -d -o %%WWWOWN%% -g %%WWWGRP%% -m 755 ${_tmpprefix}
|
|
fi
|
|
}
|
|
|
|
nginx_checkconfig()
|
|
{
|
|
nginx_checktmpdir
|
|
|
|
if checkyesno nginx_reload_quiet; then
|
|
eval ${command} ${nginx_flags} -t -q
|
|
else
|
|
echo "Performing sanity check on nginx configuration:"
|
|
eval ${command} ${nginx_flags} -t
|
|
fi
|
|
}
|
|
|
|
nginx_gracefulstop()
|
|
{
|
|
echo "Performing a graceful stop:"
|
|
sig_stop="QUIT"
|
|
run_rc_command ${rc_prefix}stop $rc_extra_args || return 1
|
|
}
|
|
|
|
nginx_upgrade()
|
|
{
|
|
echo "Upgrading nginx binary:"
|
|
|
|
reload_precmd=""
|
|
sig_reload="USR2"
|
|
run_rc_command ${rc_prefix}reload $rc_extra_args || return 1
|
|
|
|
sleep 1
|
|
|
|
echo "Stopping old binary:"
|
|
|
|
sig_reload="QUIT"
|
|
pidfile="$pidfile.oldbin"
|
|
run_rc_command ${rc_prefix}reload $rc_extra_args || return 1
|
|
}
|
|
|
|
nginx_prestart()
|
|
{
|
|
if checkyesno nginx_http_accept_enable
|
|
then
|
|
required_modules="$required_modules accf_http accf_data"
|
|
fi
|
|
|
|
nginx_checkconfig
|
|
|
|
if checkyesno nginxlimits_enable
|
|
then
|
|
eval `/usr/bin/limits ${nginxlimits_args}` 2>/dev/null
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
nginx_prestop()
|
|
{
|
|
sig_stop="${nginx_sig_stop:-TERM}"
|
|
}
|
|
|
|
run_rc_command "$1"
|