Я просто хочу прояснить, что в Windows он работает нормально, но когда я пытаюсь развернуть этот скрипт на своем VPS, он терпит неудачу.
Это немного странно, потому что, если я добавляю сопоставление к основному экземпляру веб-приложения, которое называется «mainwebapp», оно работает, но всякий раз, когда я добавляю его к любому подприложению, оно отображается как webpy «Not Found», я бью головой о стену из-за этого.
В винде у меня Wamp 2.2. в моем Vps у меня есть CentOS 5, nginx с uWsgi и те же версии Python (2.7) и Webpy из моих окон.
Я почти уверен, что это проблема с nginx/uwsgi, потому что, когда я переключаюсь на apache/mod_wsgi на своем Vps, он также работает, как и на моем локальном сервере Wamp.
Пока это код, который я тестировал, он очень простой:
class subappcls:
def GET(self):
return "This will also be shown fine"
sub_mappings = (
"/subpath", subappcls
)
#subclass web app
subwebapp = web.application( sub_mappings, globals() )
#mapped clas
class mapped_cls:
def GET(self):
return "this mapped sub app will not be found"
#Here I add mappings:
subwebapp.add_mapping("/mapped_sub_path", mapped_cls
class appcls:
def GET(self):
return "main app"
main_mappings = (
"/subapp", subwebapp,
"/app", appcls
)
mainwebapp = web.application( main_mappings, fvars=globals() )
class indexcls:
def GET(self):
return "this will be shown just fine"
mainwebapp.add_mapping("/another",indexcls)
application = mainwebapp.wsgifunc()
Когда я получаю доступ:
/subapp/subpath # будет работать
/subapp/mapped_sub_path # не будет работать
Это будет работать нормально:
/приложение
/Другой
Это журнал uwsgi: * Запуск uWSGI 1.3 (64-разрядная) [вт, 4 декабря 18:41:52 2012] скомпилирован с версией: 4.1.2 20080704 (Red Hat 4.1.2- 52) 24 ноября 2012 г. 02:21:31 os: Linux-2.6.18-194.17.4.el5xen #1 SMP Пн, 25 октября, 16:36:31 EDT 2010 ВНИМАНИЕ: вы используете uWSGI как корень!!! (используйте флаг --uid) ограничение количества ваших процессов составляет 32832 размер вашей страницы памяти составляет 4096 байт обнаруженный максимальный номер файлового дескриптора: 1024 механизм блокировки: надежные мьютексы pthread uwsgi сокет 0 привязан к адресу UNIX /tmp /app.sock fd 3 Версия Python: 2.7.3 (по умолчанию, 30 октября 2012 г., 06:37:20) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] Python threads поддержка отключена. Вы можете включить его с помощью --enable-threads *
РЕДАКТИРОВАТЬ: я включил потоки с параметром --enable-threads и тоже не работал.
Заранее спасибо.