Nginx von Raspbian kopieren

https://wiki.satria.de/index.php?title=MotionEyeOS

Da MotionEyeOs gut gegen Schreibzugriffe gesichert ist und auch kein apt nutzt, muss man etwas kreativ werden. Glücklicherweise ist Nginx nur ein kleines Paket und kann leicht von Raspbian kopiert werden.

Folgende Dateien werden benötigt:

/etc/nginx/nginx.conf
/etc/nginx/*
/usr/lib/libpcre.so.3.13.3 plus Symlink auf /usr/lib/libpcre.so.3
/usr/sbin/nginx
/var/lib/nginx/ (Ordner muss nur angelegt werden. Berechtigung muss für www-data vergeben werden, damit nginx dort temporäre Dateien speichern kann. Mit chown www-data:root /var/lib/nginx/)
/var/log/nginx/ (Ordner muss nur angelegt werden)

Schreibzugriff auf das Dateisystem

Dateisystem:

mount -o remount,rw / 

Bootpartition:

mount -o remount,rw /boot

Nginx Konfiguration

server {
  listen 80;
  listen [::]:80;

  listen              443 ssl;
  ssl_certificate     /etc/nginx/ssl/example.crt;
  ssl_certificate_key /etc/nginx/ssl/example.key;
  ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;

  server_name example.com;

  location / {
      proxy_pass http://localhost:8080/;
      proxy_cache off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
  }
}

SSL Zertifikat mit OpenSSL erzeugen

Siehe OpenSSL Befehlsübersicht

Init.d Script anlegen

Das mit Raspbian gelieferte Bootscript ist zu komplex, daher nutzen wir für MotionEyeOs das folgende.

/etc/init.d/S89nginx

case "$1" in
  start)
    echo Starting nginx...
    /usr/sbin/nginx
    ;;
  stop)
    echo Terminating all nginx instances...
    killall nginx
    ;;
  *)
    echo "Usage: /etc/init.d/nginx {start|stop}"
    exit 1
    ;;
esac

exit 0