diff --git a/nginx/custom/PKGBUILD b/nginx/custom/PKGBUILD new file mode 100644 index 00000000..9f887c69 --- /dev/null +++ b/nginx/custom/PKGBUILD @@ -0,0 +1,224 @@ +# Maintainer: Alexander Kuznecov +# Contributor: Martchus + +_pkgname="nginx" +_user="http" +_group="http" +_doc_root="/usr/share/${_pkgname}/html" +_sysconf_path="etc" +_conf_path="${_sysconf_path}/${_pkgname}" +_tmp_path="/var/spool/${_pkgname}" +_pid_path="/run" +_lock_path="/var/lock" +_log_path="/var/log/${_pkgname}" + +### 3d party modules: +_cachepurge_ver="2.3" +_cachepurge_dirname="ngx_cachepurge" +_slowfscache_ver="1.10" +_slowfscache_dirname="ngx_slowfscache" +_echo_ver="v0.58" +_echo_dirname="ngx_echo" +_headersmore_ver="v0.29" +_headersmore_dirname="ngx_headersmore" +_uploadprogress_ver="v0.9.1" +_uploadprogress_dirname="ngx_uploadprogress" +_upstreamfair_hash="a18b4099fbd458111983200e098b6f0c8efed4bc" +_upstreamfair_dirname="ngx_upstreamfair" +_fancyindex_ver="v0.3.5" +_fancyindex_dirname="ngx_fancyindex" +_authpam_ver="1.4" +_authpam_dirname="ngx_authpam" +_pagespeed_ver="1.10.33.2" +_pagespeed_dirname="ngx_pagespeed" +_rtmp_ver="v1.1.7" +_rtmp_dirname="ngx_rtmp" +_davext_ver="v0.0.3" +_davext_dirname="ngx_davext" +_naxsi_ver="0.54" +_naxsi_dirname="ngx_naxsi" +_accesskey_ver="2.0.3" +_accesskey_dirname="ngx_accesskey" + +pkgname=nginx-custom +pkgver=1.8.1 +pkgrel=1.1 +pkgdesc="Lightweight HTTP server and IMAP/POP3 proxy server (with standard, additional and 3rd party modules)" +arch=('i686' 'x86_64') + +depends=('pcre' 'zlib' 'openssl' 'pam' 'geoip' 'geoip-database' 'gd' 'libxslt') +makedepends=( + 'libxslt' + 'gd' + 'git' +) + +url="https://nginx.org" +license=('custom') +conflicts=('nginx' 'nginx-unstable' 'nginx-svn' 'nginx-devel' 'nginx-custom-dev' 'nginx-full') +provides=('nginx') +backup=("${_conf_path}/nginx.conf" + "${_conf_path}/koi-win" + "${_conf_path}/koi-utf" + "${_conf_path}/win-utf" + "${_conf_path}/mime.types" + "${_conf_path}/fastcgi.conf" + "${_conf_path}/fastcgi_params" + "${_conf_path}/scgi_params" + "${_conf_path}/uwsgi_params" + "etc/logrotate.d/nginx") +_user=http +_group=http + +source=("nginx.sh" + "nginx.conf" + "nginx.logrotate" + "nginx.service" + "http://nginx.org/download/nginx-$pkgver.tar.gz" + "${_fancyindex_dirname}.tar.gz::https://github.com/aperezdc/ngx-fancyindex/archive/${_fancyindex_ver}.tar.gz" + "${_cachepurge_dirname}.tar.gz::http://labs.frickle.com/files/ngx_cache_purge-${_cachepurge_ver}.tar.gz" + "${_slowfscache_dirname}.tar.gz::http://labs.frickle.com/files/ngx_slowfs_cache-${_slowfscache_ver}.tar.gz" + "${_uploadprogress_dirname}.source::https://github.com/masterzen/nginx-upload-progress-module/tarball/${_uploadprogress_ver}" + "${_headersmore_dirname}.source::https://github.com/agentzh/headers-more-nginx-module/tarball/${_headersmore_ver}" + "${_echo_dirname}.source::https://github.com/agentzh/echo-nginx-module/tarball/${_echo_ver}" + "${_upstreamfair_dirname}.source::https://github.com/gnosek/nginx-upstream-fair/tarball/${_upstreamfair_hash}" + "${_authpam_dirname}.tar.gz::https://github.com/stogh/ngx_http_auth_pam_module/archive/v${_authpam_ver}.tar.gz" + "${_pagespeed_dirname}.zip::https://github.com/pagespeed/ngx_pagespeed/archive/v${_pagespeed_ver}-beta.zip" + "psol.tar.gz::https://dl.google.com/dl/page-speed/psol/${_pagespeed_ver}.tar.gz" + "${_rtmp_dirname}.zip::https://github.com/arut/nginx-rtmp-module/archive/${_rtmp_ver}.zip" + "${_davext_dirname}.tar.gz::https://github.com/arut/nginx-dav-ext-module/archive/${_davext_ver}.tar.gz" + "${_naxsi_dirname}.tar.gz::https://github.com/nbs-system/naxsi/archive/${_naxsi_ver}.tar.gz" + "${_accesskey_dirname}.tar.gz::https://ostube.googlecode.com/files/Nginx-accesskey-${_accesskey_ver}.tar.gz" +) + +md5sums=('d56559ed5e8cc0b1c7adbe33f2300c4c' + '845cab784b50f1666bbf89d7435ac7af' + '79031b58828462dec53a9faed9ddb36a' + '6696dc228a567506bca3096b5197c9db' + '2e91695074dbdfbf1bcec0ada9fda462' + '6d28dfd6cef1f130a1df97d61425798c' + '3d4ec04bbc16c3b555fa20392c1119d1' + '68a1af12d5c1218fb2b3e05ed7ff6f0c' + 'f7dee95dbe8ada5f4d8e9d59ca1f4797' + '838081f1398965fbf3037bc38d1c2208' + '6fe61c5b44b2e338c66e1e33ff7e95ab' + 'ac5e7f485476af70e0ee1c52016cddaf' + 'a5c0fb3af7158297c1457739947b9b0c' + 'dffa6d500ea1af840b28c1c4244b1fcf' + '0c3b1e0c0884b899c37c0cb92b306bcd' + 'a81e63cd4cf28eaf0c87d27c44e4c44a' + '2cb502dbda335be4ebd5fed0b3182bae' + '1bc31058991268e4cfdb44e9b6d8b3b3' + '8862455846c4ce803ca15300ee08e19a') + +build() { + local _src_dir="${srcdir}/${_pkgname}-${pkgver}" + + mv ngx-fancyindex-* ${_fancyindex_dirname} + mv ngx_cache_purge-* ${_cachepurge_dirname} + mv ngx_slowfs_cache-* ${_slowfscache_dirname} + mv openresty-headers-more-nginx-module-* ${_headersmore_dirname} + mv openresty-echo-nginx-module-* ${_echo_dirname} + mv masterzen-nginx-upload-progress-module-* ${_uploadprogress_dirname} + mv gnosek-nginx-upstream-fair-* ${_upstreamfair_dirname} + mv ngx_http_auth_pam_module-${_authpam_ver} ${_authpam_dirname} + mv ngx_pagespeed-* ${_pagespeed_dirname} + mv psol ${_pagespeed_dirname}/ + mv nginx-accesskey* ${_accesskey_dirname} + mv nginx-rtmp-module* ${_rtmp_dirname} + mv nginx-dav-ext-module* ${_davext_dirname} + mv naxsi* ${_naxsi_dirname} + + cd $_src_dir + + ./configure \ + --prefix="/${_conf_path}" \ + --conf-path="/${_conf_path}/nginx.conf" \ + --sbin-path="/usr/bin/${_pkgname}" \ + --pid-path="${_pid_path}/${_pkgname}.pid" \ + --lock-path=${_pid_path}/${_pkgname}.lock \ + --http-client-body-temp-path=${_tmp_path}/client_body_temp \ + --http-proxy-temp-path=${_tmp_path}/proxy_temp \ + --http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \ + --http-uwsgi-temp-path=${_tmp_path}/uwsgi_temp \ + --http-scgi-temp-path=${_tmp_path}scgi_temp \ + --http-log-path=${_log_path}/access.log \ + --error-log-path=${_log_path}/error.log \ + --user=${_user} \ + --group=${_group} \ + --with-debug \ + --with-ipv6 \ + --with-pcre-jit \ + --with-file-aio \ + --with-mail \ + --with-threads \ + --add-module=../${_naxsi_dirname}/naxsi_src/ \ + --with-imap \ + --with-imap_ssl_module \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_dav_module \ + --with-http_gzip_static_module \ + --with-http_realip_module \ + --with-http_addition_module \ + --with-http_auth_request_module \ + --with-http_xslt_module \ + --with-http_image_filter_module \ + --with-http_sub_module \ + --with-http_flv_module \ + --with-http_mp4_module \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_perl_module \ + --with-http_degradation_module \ + --with-http_geoip_module \ + --with-http_spdy_module \ + --with-http_gunzip_module \ + --add-module=../${_cachepurge_dirname} \ + --add-module=../${_echo_dirname} \ + --add-module=../${_headersmore_dirname} \ + --add-module=../${_slowfscache_dirname} \ + --add-module=../${_uploadprogress_dirname} \ + --add-module=../${_upstreamfair_dirname} \ + --add-module=../${_fancyindex_dirname} \ + --add-module=../${_authpam_dirname} \ + --add-module=../${_pagespeed_dirname} \ + --add-module=../${_accesskey_dirname} \ + --add-module=../${_rtmp_dirname} \ + --add-module=../${_davext_dirname} + + make +} + +package() { + cd "${srcdir}/${_pkgname}-${pkgver}" + make DESTDIR="$pkgdir/" install + + sed -e "s|\ "$pkgdir"/usr/share/man/man8/nginx.8.gz + + for i in ftdetect indent syntax; do + install -Dm644 contrib/vim/${i}/nginx.vim \ + "${pkgdir}/usr/share/vim/vimfiles/${i}/nginx.vim" + done +} diff --git a/nginx/custom/nginx.conf b/nginx/custom/nginx.conf new file mode 100644 index 00000000..1b748a00 --- /dev/null +++ b/nginx/custom/nginx.conf @@ -0,0 +1 @@ +NGINX_CONFIG=/etc/nginx/nginx.conf diff --git a/nginx/custom/nginx.logrotate b/nginx/custom/nginx.logrotate new file mode 100644 index 00000000..f6f72461 --- /dev/null +++ b/nginx/custom/nginx.logrotate @@ -0,0 +1,11 @@ +/var/log/nginx/*log +/var/log/nginx/*/*log +{ + daily + missingok + create 640 http log + compress + postrotate + [ ! -f /run/nginx.pid ] || kill -USR1 `cat /run/nginx.pid` + endscript +} diff --git a/nginx/custom/nginx.service b/nginx/custom/nginx.service new file mode 100644 index 00000000..c237fd30 --- /dev/null +++ b/nginx/custom/nginx.service @@ -0,0 +1,18 @@ +[Unit] +Description=A high performance web server and a reverse proxy server +After=network.target + +[Service] +Type=forking +PIDFile=/run/nginx.pid +PrivateDevices=yes +SyslogLevel=err + +ExecStartPre=/usr/bin/nginx -t -q -g 'pid /run/nginx.pid; error_log stderr;' +ExecStart=/usr/bin/nginx -g 'pid /run/nginx.pid; error_log stderr;' +ExecReload=/usr/bin/kill -HUP $MAINPID +KillSignal=SIGQUIT +KillMode=mixed + +[Install] +WantedBy=multi-user.target diff --git a/nginx/custom/nginx.sh b/nginx/custom/nginx.sh new file mode 100644 index 00000000..472b9c53 --- /dev/null +++ b/nginx/custom/nginx.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# general config + +NGINX_CONFIG="/etc/nginx/nginx.conf" + +. /etc/conf.d/nginx +. /etc/rc.conf +. /etc/rc.d/functions + +function check_config { + stat_busy "Checking configuration" + /usr/bin/nginx -t -q -c "$NGINX_CONFIG" + if [ $? -ne 0 ]; then + stat_die + else + stat_done + fi +} + +case "$1" in + start) + check_config + $0 careless_start + ;; + careless_start) + stat_busy "Starting Nginx" + if [ -s /run/nginx.pid ]; then + stat_fail + # probably ;) + stat_busy "Nginx is already running" + stat_die + fi + /usr/bin/nginx -c "$NGINX_CONFIG" &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + add_daemon nginx + stat_done + fi + ;; + stop) + stat_busy "Stopping Nginx" + NGINX_PID=`cat /run/nginx.pid 2>/dev/null` + kill -QUIT $NGINX_PID &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + for i in `seq 1 10`; do + [ -d /proc/$NGINX_PID ] || { stat_done; rm_daemon nginx; exit 0; } + sleep 1 + done + stat_fail + fi + ;; + restart) + check_config + $0 stop + sleep 1 + $0 careless_start + ;; + reload) + check_config + if [ -s /run/nginx.pid ]; then + status "Reloading Nginx Configuration" kill -HUP `cat /run/nginx.pid` + fi + ;; + check) + check_config + ;; + *) + echo "usage: $0 {start|stop|restart|reload|check|careless_start}" +esac