文档章节

Nginx + uwsgi @ubuntu

袁祾
 袁祾
发布于 06/19 22:41
字数 636
阅读 7
收藏 0

uwsgi

安装

sudo apt-get install python3-pip # 注意 ubuntu python3默认没有安装pip

python3 -m pip install uwsgi

代码(test.py)

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

运行

常用选项

  1. http : 协议类型和端口号
  2. socket: 协议类型和端口号
  3. processes : 开启的进程数量
  4. workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes)
  5. chdir : 指定运行目录(chdir to specified directory before apps loading)
  6. wsgi-file : 载入wsgi-file(load .wsgi file)
  7. stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)
  8. threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)
  9. master : 允许主进程存在(enable master process)
  10. daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。
  11. pidfile : 指定pid文件的位置,记录主进程的pid号。
  12. vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

命令行运行

# 配合Nginx ,需要用socket参数
uwsgi --socket :8080 --wsgi-file test.py

# 用于直接访问
uwsgi --http :8080 --wsgi-file test.py

Nginx

配置(/etc/nginx/nginx.conf & /etc/nginx/conf.d)

特别注意uwsgi_pass参数, 必须和uwsgi端口一致

server {
	# 这个server标识我要配置了
	listen 80; # 我要监听那个端口
	server_name www.gcsjj.cn ; # 你访问的路径前面的url名称 
	access_log /var/log/nginx/access.log main; # Nginx日志配置
	charset utf-8; # Nginx编码
	gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型

	error_page 404 /404.html; # 错误页面
	error_page 500 502 503 504 /50x.html; # 错误页面

	# 指定项目路径uwsgi
	location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
    	include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
    	uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
    	uwsgi_pass 127.0.0.1:8080; # 指定uwsgi的端口
	}

# 指定静态文件路径
	location /static/ {
    	alias /opt/proj/teacher/static/;
    	index index.html index.htm;
	}
}

运行

# 重启Nginx
/etc/init.d/nginx restart
# 关闭&启动Nginx
/etc/init.d/nginx stop
/etc/init.d/nginx start
# 这里有个命令configtest,Nginx配置是重启生效的,如果你修改完了,不知道对    不对又担心影响其他人可以使用它测试
/etc/init.d/nginx configtest
# 如果是生产环境的话Nginx正在运行,就不要直接stop start 或者 restart  直接reload就行了
# 对线上影响最低
/etc/init.d/nginx reload

© 著作权归作者所有

共有 人打赏支持
袁祾

袁祾

粉丝 4
博文 28
码字总数 9481
作品 0
成都
程序员
Ubuntu 下面部署Django 项目

django 是 python 开源的 web 框架 ,django 本身运行后也是一个轻量级的服务器,可以满足本地的测试,生产环境中的 大量访问, 一般和nginx 和 apache 结合。下面以 Django 与nginx 结合为例...

水滴石川1
06/26
0
0
Python-django-uwsgi-nginx环境

Ubuntu 环境搭建: ** linux 系统会自带python,一般不需要特定安装python.查看版本 sudo service nginx restart #重启nginxcd /var/www/projectNameuwsgi --stop uwsgi.pid #关闭原有的 uwsg...

青瓶冷水
09/11
0
0
ubuntu12.04 python2.7.3+uwsgi+nginx

通过自己的不断坚持的努力,终于找到了这个解决方案 因为我的是ubuntu12.04 所以python的版本默认是2.7.3 nginx是通过sudo apt-get isntall nginx安装的 uwsgi也是通过sudo apt-get install ...

durban
2012/05/20
0
4
ubuntu14.04+Django1.7.1+nginx1.6+uwsgi2.0环境搭建

ubuntu下安装django1.7.1先安装pip sudo apt-get install pip 使用pip安装django sudo pip install Django (或者下载官方最新的django包,解压后执行sudo python setup.py install) 安装完...

niceguy_php
2014/12/22
0
0
flask+uwsgi+supervisor+nginx在局域网服务器上部署实践

flask可以快速的搭建http服务,但是为了搭建网站还是需要web服务器和相关监控管理操作,一套flask、uwsgi、supervisor、nginx是较好的完整解决方案。 本文对自己学习做一个记录,以一个简单的...

zoulala
09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部