Froxlor - Apache zu Nginx - Aufgabe des Lebens?
-
Bioshockolade -
31. Januar 2014 um 23:32 -
Erledigt
-
-
Wurden die Configs in /etc/nginx/sites-enabled erstellt? Falls ja, spuckt nginx eine Fehlermeldung bei invoke-rc.d nginx start aus?
-
Moin bjo,
jaein die Configs in /etc/nginx/sites-enabled sind noch die Standard Configs (oder hat das Froxlor gemacht?) die so aussieht:
Code
Alles anzeigen# You may add here your # server { # ... # } # statements for each of your virtual hosts server { listen 80; ## listen for ipv4 listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name localhost; access_log /var/log/nginx/localhost.access.log; location / { root /var/www; index index.html index.htm; } location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /images { root /usr/share; autoindex on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # #error_page 500 502 503 504 /50x.html; #location = /50x.html { # root /var/www/nginx-default; #} # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { #proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { #fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #includefastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { #deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { #listen 8000; #listen somename:8080; #server_name somename alias another.alias; #location / { #root html; #index index.html index.htm; #} #} # HTTPS server # #server { #listen 443; #server_name localhost; #ssl on; #ssl_certificate cert.pem; #ssl_certificate_key cert.key; #ssl_session_timeout 5m; #ssl_protocols SSLv3 TLSv1; #ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; #ssl_prefer_server_ciphers on; #location / { #root html; #index index.html index.htm; #} #}Bei invoke-rc.d nginx start bekomme ich keine Fehlermeldungen.
-
-
Genau die habe ich gelöscht

Wenn ich /etc/nginx/sites-enabled/default wieder hinzufüge, startet nginx, ist im Web erreichbar doch ich bekomme einen forbidden.
Das könnte daran liegen das in der /etc/nginx/sites-enabled/default keine php Dateien eingetragen waren. Also machte ich dies schnell.
Der forbidden war zwar weg doch, als ich auf die Seite gegangen bin, startete bei mir ein Download einer PHP Datei.Das habe ich übrigens noch nicht gemacht (wollte Froxlor):
ZitatBitte beachten Sie: Das MySQL-Passwort wurde aus Sicherheitsgründen nicht ersetzt.
Bitte ersetzen Sie "MYSQL_PASSWORD" manuell durch das entsprechende Passwort.
Falls Sie es vergessen haben sollten, finden Sie es in der Datei "lib/userdata.inc.php".Ich benutze übrigens nginx/0.7.67.
-
Die default muss weg, sonst kollidiert sie vermutlich mit einem Froxlor-Vhost. Wenn du sie weglässt, startet nginx nicht? Und warum nutzt du Squeeze und nicht Wheezy, was das aktuelle stable wäre?
-
Weil ich dachte ich habe Squeeze

Ich habs jetzt nochmal mit Wheezy versucht und die Default gelöscht. Gleicher Fehler wie bisher.
Die Shell sagt nginx sei gestartet doch der webserver ist nicht erreichbar.Die Config sieht mit Wheezy logischerweise anders aus. Ich poste sie mal vielleicht enthält sie ja Fehler:
Code
Alles anzeigenuser www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #} -
Du hast Squeeze, weil du dachtest, du hast Squeeze?

Was sagt denn /var/log/nginx/errlor.log?
-
was sagt denn /var/log/nginx/errlor.log?
Leider nichts.
-
So langsam aber sicher bin ich mehr als irritiert!
Was hat Wheezy mit dem Löschen von der Default-Konfigurationsdatei von nginx zutun?
Richtig, nichts.ZitatDie default muss weg, sonst kollidiert sie vermutlich mit einem
Froxlor-Vhost. Wenn du sie weglässt, startet nginx nicht? Und warum
nutzt du Squeeze und nicht Wheezy, was das aktuelle stable wäre?Das ist gelinde gesagt Unsinn, denn da wird nur der Aufruf der DNS-Einträge hin geleitet und zur Ausführung gebracht, was unter /var/www zu finden ist.
Wenn man sich den Quellcode von Post 2 ansieht, steht das da auch drin.
In dem Quellcode ist keine Domain hinterlegt, also wird alles in die Default-Route geleitet (/var/www).vHosts werden in einer jeweiligen, separaten Datei hinterlegt, man kann sogar mehrere Domains in einer hinterlegen, wenn ein und die selbe Seite über mehrere Domains erreichbar sein soll, nur Froxlor kann das nicht.
Konkrete Abhilfe schafft das Studium der nginx-Dokumentation, da findet man dann so etwas hier: How nginx processes a request
Froxlor übernimmt eigentlich alles und ich kann mich nicht erinnern jemals in den Anweisungen von Froxlor gelesen zu haben, irgend welche Dateien zu löschen, wenn es um die Einrichtung von nginx ging, schon gar nicht die Default-Datei.
Mag sich vielleicht geändert haben, denn mittlerweile administriere ich nginx nur noch von Hand und lasse da ganz bestimmt keine Webanwendung mehr ran.
Zu Deinem eigentlichen Problem und das werde ich jetzt mal ohne weitere Infos aus dem Kopf machen.
Deine Seiten liegen ja unter ihren Root-Verzeichnissen, eingerichtet unter Apache.
Um diese Seiten über nginx und Froxlor zu administrieren, wirst Du die Domains in Froxlor anlegen müssen, die Pfade zu den Rootverzeichnissen anpassen und nginx, resp. Froxlor, die Rechte auf diese Verzeichnisse geben müssen. Danach sollten weitere vHost-Dateien in /etc/nginx/sites-enabled/ zu finden sein, die dafür sorgen sollten, dass die Seiten auch aufgerufen werden können.
Alternativ geht auch, Froxlor die Verzeichnisse anlegen zu lassen und die Seiteninhalte dahin zu kopieren.
Datenbank technisch ändert sich nichts, diese müsste ja schon vorhanden sein.Andererseits muss man sich fragen, welche Anwendung 50% der CPU benötigt?
Da sollte man wohl eher den Fehler suchen.
Sollte es eine einfache Webseite sein, dürfte die Seite mehr als schlecht programmiert sein und ich würde den Betreiber auf den Pott setzen und gegebenenfalls sogar sperren, sollte keine Reaktion kommen. Schließlich kann es nicht sein, dass einer alle runter zieht.Im Übrigen wird an einer solchen Seite auch nginx nichts ändern können, auch wenn nginx wesentlich performanter ist, als dieses Riesenbaby Apache.

Noch als kleiner Tipp!
Man kann nginx auf einen anderen Port lauschen lassen, damit er nicht mit Apache kollidiert.
Damit gewinnst Du Zeit und kannst die Seiten unter nginx testen, auch wenn die Leute auf den Indianer zugreifen. -
Als Kommandos für nginx unter Wheezy listet Froxlor jedenfalls auf:
Coderm /etc/nginx/sites-enabled/default mkdir -p /var/kunden/webs/ mkdir -p /var/kunden/logs/ mkdir -p /var/kunden/tmp/ chmod 1777 /var/kunden/tmp/ chmod u+x /etc/init.d/php-fcgiZudem erstellt Froxlor einen eigenen Vhost für sich auf <ip>:80 default; - sofern nun in sites-enabled/default ebenso ein default-Vhost definiert ist, dürfte das IMHO zu Problemen führen.
-
-
Solange du Apache nicht als Proxy konfiguriert hast, sollte der keine Anfragen an nginx weiterleiten.
-
-
FYI: Der Thread ist mehr als drei Jahre alt...

-
Upps, das ist mir gar nicht aufgefallen
Entschuldigung.