2 votes

Site web sur le serveur nginx demandé à partir du sous-répertoire

Nous avons deux serveurs nginx. Le premier serveur reçoit une requête via www.example.com/partner . Il envoie la requête complète au second serveur qui a configuré php+fastCgi. Journal d'accès Nginx du second serveur :

"GET /partenaire/ HTTP/1.0" 200 2845

Sur le second serveur, j'ai un serveur virtuel qui ressemble à ça :

server {
       listen my.ip:80;
       server_name www.example.com;
       root /var/www/example;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location = /partner/favicon.ico {
                log_not_found off;
                access_log off;
                expires max;
       }

        location @nocache {
                try_files $uri $uri/ /index.php?$args;
       }
       location = /partner/robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       location ^~ /partner/typo3temp/tx_ncstaticfilecache {
                expires 43200;
                charset utf-8;
       }

       location = /partner/clear.gif {
                empty_gif;
                expires max;
       }
       location ^~ /partner/typo3/gfx {
                expires max;
       }
       location ^~ /partner/typo3temp/compressor {
                expires max;
       }   

    location /partner {    

                if ($query_string ~ ".+") {
                        return 405;
                }
                # pass requests from logged-in users to PHP
                if ($http_cookie = 'nc_staticfilecache|be_typo_user' ) {
                        return 405;
                } # pass POST requests to PHP
                if ($request_method !~ ^(GET|HEAD)$ ) {
                        return 405;
                }
                if ($http_pragma = 'no-cache') {
                        return 405;
                }
                if ($http_cache_control = 'no-cache') {
                        return 405;
                }
                error_page 405 = @nocache;

                # serve requested content from the cache if available, otherwise pass the request to PHP
                try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;

       location ~* \.(sql|htaccess|htpasswd|tpl|html5|xhtml) {
                deny all;
       }

       location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
       }

       location ~* \.(cur|ico|gif|png|jpe?g|css|js|swf|woff)((\?\d\d\d\d\d\d\d\d\d\d)|(\?s=\d\d\d\d\d\d\d\d\d\d))$ {
                expires max;
                log_not_found off;
       }
       location ~* \.(cur|ico|gif|png|jpe?g|css|js|swf|woff)(\?v\d\d?\.\d\d?\.\d\d?)$ {
                expires max;
                log_not_found off;
       }
       location ~* ^(/typo3/sysext|/typo3conf/ext).*\.(cur|ico|gif|png|jpe?g|css|js|swf|woff) {
                expires max;
                log_not_found off;
       }

       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

       location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_index index.php;
       }
    }
}

Le problème est que l'index.php n'est pas interprété, il est plutôt téléchargé. Une idée de ce qui ne va pas ?

0 votes

Vous avez oublié un point-virgule à server_name.

2voto

KorvinStarmast Points 169

Votre configuration est assez similaire à celui-ci La partie que vous avez manifestement manquée est try_files $uri $uri/ /index.php?$args; dans la racine de la server bloc.

Une autre suggestion est d'essayer d'utiliser la configuration exactement comme celle du lien pour s'assurer que tout fonctionne et que le problème n'est pas causé par votre location / ifs. Après cela, il y a error_log ~/nginx_debug.log info; dans le server et effectuez vos modifications - vous serez en mesure de comprendre quelle partie de votre configuration est cassée.

0 votes

La configuration vient d'ici howtoforge.com/

0 votes

Je ne comprends pas vraiment pourquoi il y a tous ces trucs de wordpress dans votre configuration...

0 votes

Comme je l'ai dit, j'ai réussi à faire fonctionner typo3 jusqu'à présent. Mais je veux qu'il soit accessible à partir de my-site.com/partner. Mais j'obtiens toujours une erreur 404. Avec la configuration que j'ai postée, typo3 fonctionne parfaitement pour un sous-domaine, par exemple typo3.my-site.com...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X