微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

uwsgi + python + nginx + willy nilly文件执行

我在Nginx上使用uwsgi来运行一些Python代码

我想绑定uwsgi一个目录,并使其呈现任何.py文件,我从浏览器中的服务器调用。 我在想像PHP在这里(/index.PHP执行该文件,/login.PHP执行该文件)。

这可能吗? 或者我只能在uwsgi中明确指定一个模块/应用程序/文件

这是我的init语法:

如何设置Nginx背后的Phantomjs

如何使用Nginxredirect到使用rand key的URL

使用HttpClient的客户端身份validation

用于反向代理Nginx的authentication/访问控制模块

Fedora 20 systemctl Nginx权限被拒绝

/opt/uwsgi/uwsgi -s 127.0.0.1:9001 -M 4 -t 30 -A 4 -p 4 -d /var/log/uwsgi.log --pidfile /var/run/uwsgi.pid --pythonpath /srv/www

我认为这将允许/srv/www充当任何.py文件被执行的文件夹。

这是我的Nginxconfiguration:

server { listen 80; server_name DONT_NEED_THIS; access_log /srv/www/logs/access.log; error_log /srv/www/logs/error.log; location / { root /srv/www; # added lines include uwsgi_params; uwsgi_pass 127.0.0.1:9001; }

就目前来看,当我尝试调用web根目录(即www.site.com/)时,我得到:

wsgi application not found

使用以下index.py文件

import sys import os sys.path.append(os.path.abspath(os.path.dirname(__file__))) def application(environ,start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type','text/plain'),('Content-Length',str(len(output)))] start_response(status,response_headers) return [output]

有任何想法吗?

谢谢!

限制对端口的直接访问,但允许在Nginx中进行端口转发

Nginx中使用rewrite和PHP-fpm来扩展.PHP

Nginx显示欢迎页面

如何将这个Apache重写转换成Nginx

西纳特拉gem不会安装

Wsgi不像PHP。 你不能把uwsgi指向一堆.py文件的目录。 事实上,永远不要让您的python模块在公共目录中可用,可以从服务器访问。 您需要将uwsgi挂接到Wsgi应用程序,最好是一个框架。 在这里阅读更多关于Wsgi。 检查一下小,简单的Wsgi框架的瓶子 。 它有很好的文档,很容易上手。 实际上Python有很多优秀的网页框架,所以随时查看:)

你可能想读这个线程:

http://lists.unbit.it/pipermail/uwsgi/2011-march/001657.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐