LINUX.ORG.RU

(полное нубство, дядя_ни_бейти) nginx+fcgi+web.py 404 везде, кроме /

 , ,


0

1

Вот есть локация в nginx:

       }
        location loc {
                try_files $uri $uri/ index.py
                fastcgi_pass unix:/var/run/fcgiwrap.socket;
                include /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        }
вот есть index.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import web
urls = ("/.*", "sss", "/ddd/.*", "hello")
app = web.application(urls, globals())

class hello:
        def GET(self):
                return 'Hello, world!'

class sss:
        def GET(self):
                return 'sssss!'

app.run()

На локации /loc отдаёт нужную строчку, на /loc/ddd - 404. В каком месте у меня лыжи не едут, спасите-помогите. Я с nginx опыта не имею, явно что-то очевидное забыл?

Ололо. Ты занимаешься какой-то фигнёй.

Бери Gunicorn и настраивай прокси, у них хорошие примеры, сразу въедешь.

WitcherGeralt ★★
()
Ответ на: комментарий от MrClon

На данный момент вот так:

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;

	index index.html index.htm index.nginx-debian.html index.py;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}
	location /dev/ {

		try_files $uri $uri/ =404;
		autoindex on;
	}
	location /stage/ {

		try_files $uri $uri/ =404;
	}

        location /loc/ {
		try_files $uri $uri/ =404;
                fastcgi_pass unix:/var/run/fcgiwrap.socket;
                include /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME /var/www/html/loc/index.py;
        }

	location ~ \.py$ {
		fastcgi_pass unix:/var/run/fcgiwrap.socket;
		include /etc/nginx/fastcgi_params;
		fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
	}

}

olegkrutov ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.