Hi,

I have the following configuration. Why are a missing .html file, and the requests for favicon.ico (also missing), all result in a "bad gateway" error.? The error log shows that the request is passed to uwsgi, which is aborting 502.

I would have expected the last two configurations to be taken resulting in a 404.

server {
    listen  80;
    listen [::]:80 ipv6only=on;
    server_name www.mydomain.com mydomain.com, wwp.mydomain.com localhost;
    # localhost so it can be read locally for testing

    access_log /var/log/nginx/gmt.access.log;
    error_log /var/log/nginx/gmt.error.log;
    index index.htm;
    # three way split -> .htm .php and static
    # serve old *.htm, send missing to new
    location ~ \.htm$ {
        root /var/www/mydomain.com/oldhtdocs;
        try_files $uri $uri/ @newflask;
    }
    # for new site, pass .htm to flask
    location @newflask {
        # recieves *.htm where old file is missing
        root /var/www/mydomain.com/htdocs;
        include                     uwsgi_params;
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.htm)(/.+)$;
        uwsgi_pass                  uwsgicluster;
        uwsgi_param UWSGI_CHDIR     /var/www/mydomain.com/flask;
        uwsgi_param UWSGI_PYHOME /var/www/mydomain.com/flask/venv;
        uwsgi_param UWSGI_MODULE    gmt;
        uwsgi_param UWSGI_CALLABLE  app;
        proxy_redirect              off;
        proxy_set_header            Host $host;
        proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header            X-Forwarded-Host $server_name;
    }
    # Pass php files to php via fcgi
    location ~ \.php$ {
        root /var/www/mydomain.com/oldhtdocs;
        try_files $uri @newphp;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: Must have "cgi.fix_pathinfo = 0;" in php.ini
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    # pass .php to new root or 404
    location @newphp {
        root /var/www/mydomain.com/htdocs;
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    # serve old static files with nginx
    location / {
       root /var/www/mydomain.com/oldhtdocs;
       index index.htm;
       try_files $uri $uri/ @newstatic;
    }
    # serve static new files with nginx
    location @newstatic {
        root /var/www/mydomain.com/htdocs;
            # serve if present, else 404
        try_files $uri $uri/ =404;
    }
}

By way of explanation, we are migrating from oldhtdocs to a new site, but having to replace pages in groups. This way I hope we can leave all the junk behind.

Ubuntu 14:04, with standard versions of all software. Nginx is 1.4.6

Thanks for your ideas,

Ian

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to