To build nginx, run in terminal
wget https://gist.github.com/judge2020/e3461e06c065830d1359adca1be90893/raw/b77d7cd58606002b12392fc066fe1cdda5c0cd30/build_nginx.sh && source build_nginx.sh
| mkdir -p ~/nginx | |
| mkdir -p ~/nginx/_nginx | |
| cd ~/nginx/_nginx | |
| find . -maxdepth 1 -mindepth 1 -type d -exec echo mv "{}" "{}-$RANDOM" \; | |
| cd ~/nginx | |
| mv nginx-* _nginx | |
| sudo apt install -y wget build-essential python3 python3-requests | |
| sudo mkdir -p /var/lib/nginx/body | |
| python3 -m pip install requests | |
| cat << EOF > dlnginx.py | |
| # Hopefilly this works for a while. As long as their CHANGES file doesnt change | |
| from __future__ import print_function | |
| import requests, os | |
| f = requests.get('http://nginx.org/en/CHANGES') | |
| a = f.text.split('Changes with nginx ') | |
| i = 0 | |
| for ab in a: | |
| i += 1 | |
| if i >= 3: | |
| continue | |
| if '1.' in ab: | |
| version = ab[:7].strip(' ') | |
| print(version) | |
| file = 'nginx-' + version + '.tar.gz' | |
| os.system('wget ' + r'http://nginx.org/download/' + file) | |
| os.system('tar -xvf ' + file) | |
| #r = requests.get(r'http://nginx.org/download/' + file, stream=True) | |
| #with open(file, 'wb') as f: | |
| # for chunk in r.iter_content(): | |
| # f.write(chunk) | |
| EOF | |
| python3 dlnginx.py | |
| if [ ! -f pcre-8.40/NEWS ]; then | |
| wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz | |
| fi | |
| zlib-1.2.11/FAQ | |
| if [ ! -f zlib-1.2.11/FAQ ]; then | |
| wget http://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz | |
| fi | |
| if [ ! -f openssl-1.1.0g/FAQ ]; then | |
| wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz && tar xzvf openssl-1.1.0g.tar.gz | |
| fi | |
| git clone https://github.com/arut/nginx-rtmp-module | |
| rm -rf *.tar.gz | |
| cat << EOF > configure.sh | |
| #!/bin/bash | |
| cd nginx-1.* | |
| ./configure --prefix=/usr/share/nginx \ | |
| --sbin-path=/usr/sbin/nginx \ | |
| --modules-path=/usr/lib/nginx/modules \ | |
| --conf-path=/etc/nginx/nginx.conf \ | |
| --error-log-path=/var/log/nginx/error.log \ | |
| --http-log-path=/var/log/nginx/access.log \ | |
| --pid-path=/run/nginx.pid \ | |
| --lock-path=/var/lock/nginx.lock \ | |
| --user=www-data \ | |
| --group=www-data \ | |
| --build=Ubuntu \ | |
| --http-client-body-temp-path=/var/lib/nginx/body \ | |
| --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ | |
| --http-proxy-temp-path=/var/lib/nginx/proxy \ | |
| --http-scgi-temp-path=/var/lib/nginx/scgi \ | |
| --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ | |
| --with-openssl=../openssl-1.1.0g \ | |
| --with-openssl-opt=enable-ec_nistp_64_gcc_128 \ | |
| --with-openssl-opt=no-nextprotoneg \ | |
| --with-openssl-opt=no-weak-ssl-ciphers \ | |
| --with-openssl-opt=no-ssl3 \ | |
| --with-pcre=../pcre-8.40 \ | |
| --with-pcre-jit \ | |
| --with-zlib=../zlib-1.2.11 \ | |
| --with-compat \ | |
| --with-file-aio \ | |
| --with-threads \ | |
| --with-http_addition_module \ | |
| --with-http_auth_request_module \ | |
| --with-http_dav_module \ | |
| --with-http_flv_module \ | |
| --with-http_gunzip_module \ | |
| --with-http_gzip_static_module \ | |
| --with-http_mp4_module \ | |
| --with-http_random_index_module \ | |
| --with-http_realip_module \ | |
| --with-http_slice_module \ | |
| --with-http_ssl_module \ | |
| --with-http_sub_module \ | |
| --with-http_stub_status_module \ | |
| --with-http_v2_module \ | |
| --with-http_secure_link_module \ | |
| --with-mail \ | |
| --with-mail_ssl_module \ | |
| --with-stream \ | |
| --with-stream_realip_module \ | |
| --with-stream_ssl_module \ | |
| --with-stream_ssl_preread_module \ | |
| --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wno-error=date-time' \ | |
| --with-ld-opt='-Wno-error=date-time -Wl,-Bsymbolic-functions -Wl,-z,now' \ | |
| --add-module=../nginx-rtmp-module | |
| EOF | |
| sh configure.sh | |
| cd nginx-* | |
| [ -f /etc/systemd/system/nginx.service ] || sudo tee -a /etc/systemd/system/nginx.service << EOF | |
| [Unit] | |
| Description=A high performance web server and a reverse proxy server | |
| After=network.target | |
| [Service] | |
| Type=forking | |
| PIDFile=/run/nginx.pid | |
| ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' | |
| ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' | |
| ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload | |
| ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid | |
| TimeoutStopSec=5 | |
| KillMode=mixed | |
| [Install] | |
| WantedBy=multi-user.target | |
| EOF | |
| echo If everything went as planned, you should be able to "make" then "make Install". |