Moin,
ich habe in den letzten Tagen echt viel über Nginx, PHP7 und PostgreSQL gelernt doch so wie ich es gern hätte läuft es nicht. Ich hoffe hier findet sich jemand der Rat weiß.
Vorwiegend bereitet mir die /etc/nginx/sites-available/main.conf Kopfzerbrechen.
Was läuft ist: - SSL mit selbsterstellten Zertifikat - PHP - Odoo 9 startet auf dem Server - Nginx startet und bietet Zugriff auf /var/www/html/
Meine /etc/nginx/sites-available/main.conf beinhaltet bisher:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | ## http weiterleiten nach https ## server { listen 80; listen [::]:80; server_name IP; return 301 https://$server_name$request_uri; } ## https ## server { listen 443 ssl; listen [::]:443 ssl; server_name IP; charset utf-8; # Hauptverzeichnis root /var/www/html/; # log files access_log /var/log/nginx/myodoo-site.log; error_log /var/log/nginx/myodoo-site.error.log; # ssl ssl on; ssl_certificate /etc/nginx/ssl/nginx.crt; # fügt Zertifikat fullch$ ssl_certificate_key /etc/nginx/ssl/nginx.key; # fügt privaten Schlüsse$ keepalive_timeout 60; # ciphers ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # definiert die Protokolle ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; ssl_prefer_server_ciphers on; # Fehlerseiten location = /50x.html { root /usr/share/nginx/html; } # php location ~ \.php(?:$|/) { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice fastcgi_pass php; fastcgi_intercept_errors on; } # odoo location /odoo/ { rewrite ^/odoo(/.*)$ $1 break; proxy_pass http://127.0.0.1:8069; # force timeouts if the backend dies proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; # set headers proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # when redirecting to https: proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; } } |
Egal ob mit oder ohne den letzten location-Block und ob nun über die IP:8069 oder über IP/odoo/ es erscheint nicht der Loginbildschirm von Odoo.
Selbst Elinks verweigert den Zugriff auf Odoo, selbst mit 127.0.0.1:8069.
Der Befehl nginx -t ergibt diese Anzeige:
1 2 3 4 5 6 | nginx: [warn] conflicting server name "192.168.2.20" on 0.0.0.0:80, ignored nginx: [warn] conflicting server name "192.168.2.20" on [::]:80, ignored nginx: [warn] conflicting server name "192.168.2.20" on 0.0.0.0:443, ignored nginx: [warn] conflicting server name "192.168.2.20" on [::]:443, ignored nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
ps aux | grep nginx
1 2 3 | root 2247 0.0 0.0 125868 1612 ? Ss 00:19 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 2248 0.0 0.1 125868 3212 ? S 00:19 0:00 nginx: worker process root 2251 0.0 0.0 14516 948 pts/0 S+ 00:19 0:00 grep --color=auto nginx |
Man kann zwar für jede Anwendung eine neue .conf-Datei basteln, lieber wäre mir allerdings eine für alles. Auch dass man die locations in einander verschachteln kann habe ich schon rausfinden können, aber wie genau leider nicht.
Aktuell reicht es wenn der Server aus dem eigenen Netz erreichbar ist, später soll noch Mailserver, fail2ban und IPtables drauf laufen und erst dann möchte ich mich in die freie Wildbahn über DynDNS oder Mietserver wagen.
Danke schon jetzt!