Skip to content

NGINX

Verschoben NGINX
  • NGINX ist ein Webserver, das Gegenstück zum Apache.

    Jetzt werden sich einige fragen, warum nimmt der keinen Apache? Bei der Installation von NodeBB brauchte ich einen Proxy und in der Anleitung bin ich über NGINX gestolpert. Das sah auch deutlich einfacher aus usw. Letztendlich bin ich dann dabei geblieben.

    Nun hält sich NGINX an die Pfadvorgaben vom Apache, was auch einen Umstieg relativ einfach macht. Man findet sich recht gut zurecht.

    Die Konfigurationsdateien findet man unter /etc/nginx Eine wichtige Datei ist dort die nginx.conf Die lassen wir hier aber mal außen vor, die Standard Konfiguration sollte für die ersten Schritte reichen.

    Wie im Apache liegen die Einstellungen unter

    • /etc/nginx/sites-available
    • /etc/nginx/sites-enabled

    Unter /etc/nginx/sites-available erstellt man eine Textdatei mit seinen Einstellungen und aktiviert diese mit

    sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/
    

    Den Service NGINX steuert man wie folgt. Dieser Befehl testet die Konfiguration auf Plausiblität usw.

    sudo nginx -t
    

    Hiermit startet man den NGINX neu

     sudo service nginx restart
    

    Das sollten genug Grundlagen zum NGINX sein. Nun mal wieder was Praktisches 🙂

    Vorhaben

    Ein ROCKPro64 soll mir hier als Entwicklungsumgebung dienen. Der ROCKPro64 ist mit einer 500GB NVMe SSD als System ausgerüstet, dazu gesellt sich eine 1TB 2,5 Zoll HDD als Backup-Medium.

    Es sollen also die Standarddienste darauf laufen wie

    • NGINX
    • MariaDB
    • php7.2
    • php7.2-fpm

    Um das jetzt vernünftig bedienen zu können, brauchen wir eine phpMyAdmin Installation. Jetzt sind wir aber gezwungen den NGINX so zu konfigurieren, das wir mit zwei Webseiten gleichzeitig arbeiten können. Ich habe etwas länger gebraucht um das System zu kapieren, obwohl es gar nicht so schwer ist 😉

    Zwei Dienste sollen laufen

    • phpMyAdmin
    • eine PHP Anwendung

    Dazu brauchen wir zwei Textdateien in /etc/nginx/sites-available

    phpmyadmin

     server {
            listen 80 default_server;
            #listen [::]:80;
    
            root /var/www/phpMyAdmin;
    
            index index.html index.htm index.php;
    
            server_name phpmyadmin.com;
    
            location /phpMyAdmin {
                        try_files $uri $uri/ =404;
            }
    
            ## Begin - PHP
            location ~ \.php$ {
            # Choose either a socket or TCP/IP address
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            # fastcgi_pass unix:/var/run/php5-fpm.sock; #legacy
            # fastcgi_pass 127.0.0.1:9000;
    
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    
            }
    }
    

    Unter /var/www/phpMyAdmin liegt die phpMyAdmin-Installation. Die Domain heißt phpmyadmin.com

    falschp

    server {
            listen 80;
            #listen [::]:80;
    
            root /var/www/falschp;
    
            index index.html index.htm index.php;
    
            server_name falschparker.com;
    
            location /falschp {
                        try_files $uri $uri/ =404;
            }
    
             
            ## Begin - PHP
            location ~ \.php$ {
            # Choose either a socket or TCP/IP address
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            # fastcgi_pass unix:/var/run/php5-fpm.sock; #legacy
            # fastcgi_pass 127.0.0.1:9000;
    
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    
            }
    }
    

    Unter /var/www/falschp liegt das PHP-Projekt. Die Domain heißt falschparker.com

    Aktivieren

    sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/falschp /etc/nginx/sites-enabled/
    

    Nun sind diese beiden Konfigurationen aktiv. Doch ein Aufruf der IP des ROCKPro64 würde uns jetzt immer zu dem Default-Server verbinden. Das ist in unserem Beispiel die phpMyAdmin-Installation.

    Nun um den anderen Dienst zu erreichen brauchen wir einen kleinen Trick. Wir weisen unseren Rechner an, die Domain nicht per DNS-Server aufzulösen, sondern wir weisen unserem Rechner an genau dort zu suchen, wo wir den Dienst angelegt haben. Hört sich kompliziert an, ist aber easy.

    Auf Eurem Haupt-PC, die Datei /etc/hosts öffnen

    127.0.0.1       localhost
    127.0.1.1       frank-MS-7A34
    192.168.3.206   phpmyadmin.com
    192.168.3.206   falschparker.com
    

    Die beiden Domains ergänzen und die Datei speichern. Danach könnt Ihr eich mit dem Aufruf der Domains zu den beiden Anwendungen verbinden. Fertig! 🙂

    Der Default-Server ist auch direkt über die IP-Adresse erreichbar.

    Anmerkungen

    Meine beiden Domainnamen sind nicht besonders clever, wenn es so einen Dienst im Internet gibt, könnte ich ihn nicht mehr erreichen. Besser wäre so was wie app1.com, app2.com usw. Hmm !?!?

    Und jetzt wie immer folgender Hinweis!

    Diese Anleitung bitte nicht in produktiven Umgebungen benutzen.

    Da gehört sicherlich noch viel mehr in die Konfigurationsdateien!

    Tipp

    Die meisten guten Anwendungen im Netz (nodebb, joomla, wordpress usw.) habe alle gute Dokumentationen wo man Beispiel Konfigurationen findet. Benutzt bitte NUR diese!

  • Debian 11 - nginx mit Seafile

    NGINX
    3
    0 Stimmen
    3 Beiträge
    120 Aufrufe
    H

    Hi,
    ja es ist zu Warm 😀 😎

    Hab mich vielleicht etwas falsch ausgedrückt.
    Ich suche ne möglichkeit bzw. ein Howto wie ich Seafile für einen bekannten auf ein Shared Hosting Paket installiert bekomme.

  • Samba Installation - Server & Client

    Linux
    1
    0 Stimmen
    1 Beiträge
    43 Aufrufe
    Niemand hat geantwortet
  • LUKS Key Derivation Function

    Linux
    1
    0 Stimmen
    1 Beiträge
    54 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - Switch

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    242 Aufrufe
    Niemand hat geantwortet
  • NGINX & Webmin

    NGINX
    3
    0 Stimmen
    3 Beiträge
    844 Aufrufe
    FrankMF

    Das was da oben steht über Firewalld, ganz schnell vergessen. Das brauchen wir nicht, hat auch nur Probleme gemacht....

    21edf29c-ec9a-4cb5-a8ba-8bc534e4f4ec-grafik.png

    Man kann ganz normal mit iptables arbeiten, man sollte schon mal eine Firewall konfiguriert haben, das macht es etwas einfacher.

    Kurzer Test, ob das so klappt wie erwartet.

    frank@debian:~$ nmap 192.168.3.6 Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-13 19:57 CEST Nmap scan report for 192.168.3.6 Host is up (0.0011s latency). Not shown: 996 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp closed https 10000/tcp open snet-sensor-mgmt

    Das hier sind aktuell die Regeln.

    root@rockpro64:~# iptables-legacy -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp multiport ports ssh ACCEPT tcp -- anywhere anywhere tcp multiport ports webmin ACCEPT tcp -- anywhere anywhere tcp multiport ports http ACCEPT tcp -- anywhere anywhere tcp multiport ports https Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

    Wenn ich das so die ganze Zeit teste, dann zweifel ich immer daran, ob solche Tools(Webmin) irgend einen Vorteil haben!? Mir macht das mittlerweile mehr Arbeit, als wenn ich das alles schnell eben auf der Konsole erledige. Vielleicht bin ich auch nur mittlerweile zu weit weg, von grafischen UI. Ich gebe dem Webmin aber noch ein paar Tage, gibt noch ein paar Sachen zu entdecken.

  • NGINX - Grundlagen worker_processes

    NGINX
    1
    0 Stimmen
    1 Beiträge
    224 Aufrufe
    Niemand hat geantwortet
  • Liste von Linuxbefehlen

    Angeheftet Linux
    3
    0 Stimmen
    3 Beiträge
    642 Aufrufe
    FrankMF
    systemd Anzeige der geladenen Dienste root@host:/etc/systemd/system# systemctl --type=service UNIT LOAD ACTIVE SUB DESCRIPTION atd.service loaded active running Deferred execution scheduler blk-availability.service loaded active exited Availability of block devices cloud-config.service loaded active exited Apply the settings specified in cloud-config cloud-final.service loaded active exited Execute cloud user/final scripts cloud-init-local.service loaded active exited Initial cloud-init job (pre-networking) cloud-init.service loaded active exited Initial cloud-init job (metadata service crawler) console-setup.service loaded active exited Set console font and keymap cron.service loaded active running Regular background program processing daemon crowdsec-firewall-bouncer.service loaded active running The firewall bouncer for CrowdSec crowdsec.service loaded active running Crowdsec agent dbus.service loaded active running D-Bus System Message Bus getty@tty1.service loaded active running Getty on tty1 ifupdown-pre.service loaded active exited Helper to synchronize boot up for ifupdown keyboard-setup.service loaded active exited Set the console keyboard layout kmod-static-nodes.service loaded active exited Create List of Static Device Nodes lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling mariadb.service loaded active running MariaDB 10.11.3 database server networking.service loaded active exited Raise network interfaces nginx.service loaded active running A high performance web server and a reverse proxy server qemu-guest-agent.service loaded active running QEMU Guest Agent resolvconf.service loaded active exited Nameserver information manager semaphore.service loaded active running Ansible Semaphore serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0 ssh.service loaded active running OpenBSD Secure Shell server systemd-binfmt.service loaded active exited Set Up Additional Binary Formats systemd-fsck@dev-disk-by\x2duuid-1E22\x2dDC00.service loaded active exited File System Check on /dev/disk/by-uuid/1E22-DC00 systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage systemd-journald.service loaded active running Journal Service systemd-logind.service loaded active running User Login Management systemd-modules-load.service loaded active exited Load Kernel Modules systemd-random-seed.service loaded active exited Load/Save Random Seed systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems systemd-sysctl.service loaded active exited Apply Kernel Variables systemd-sysusers.service loaded active exited Create System Users systemd-timesyncd.service loaded active running Network Time Synchronization systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories systemd-udev-trigger.service loaded active exited Coldplug All udev Devices systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files systemd-update-utmp.service loaded active exited Record System Boot/Shutdown in UTMP systemd-user-sessions.service loaded active exited Permit User Sessions ufw.service loaded active exited Uncomplicated firewall user-runtime-dir@0.service loaded active exited User Runtime Directory /run/user/0 user@0.service loaded active running User Manager for UID 0 LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 44 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
  • Datensicherung zwischen zwei Server

    Linux
    2
    0 Stimmen
    2 Beiträge
    671 Aufrufe
    FrankMF

    Funktionskontrolle heute morgen war o.k. Schreibt die Daten aber noch ins falsche Verzeichnis, da muss ich nochmal ran.