python环境配置安装socket_Nginx + uwsgi + django + websocket(dwebsocket)环境部署

本文档详细介绍了如何配置Python环境,部署Django项目,使用Nginx、uWSGI和WebSocket(dwebsocket)。包括安装Nginx,部署Django,设置uWSGI配置文件,创建uwsgi.ini,修改nginx配置以支持WebSocket,并最终重启服务进行验证。
摘要由CSDN通过智能技术生成

1.安装nginx(/export/servers/nginx/)###

保证/export/servers/nginx/是nginx的安装目录

/export/servers/nginx/conf/domain/xxx应用配置文件

2.部署django环境,保证python manage.py runserver 0.0.0.0:8000能正常跑起来,websocket能调通###

1.项目名称:Python_20160906,里面有2个应用

2.一个应用名字叫app,一个叫做api

3.项目路径/export/App/DevOPS/Python_20160906

uwsgi相关的东西在下图这个配置文件中(项目settings.py文件目录下)

3.uwsgi###

(1)安装

pip install uwsgi

(2)测试是否安装成功(uwsgi开启服务)

--home:指定virtualenv的环境目录,如果没用virtualenv的话不用指定可选

--chdir:指定django项目的根路径:/export/App/DevOPS/Python_20160906

-w 指定django项目的wsgi文件位置,就是如图2的东西(因为项目目录为/export/App/DevOPS/Python_20160906,项目目录下还有个同名目录Python_20160906,存放项目配置文件的地方,里面有个wsgi.py文件,所以写作Python_20160906.wsgi)

# uwsgi --http :8000 --home /home/siva/Env/first --chdir /export/App/DevOPS/Python_20160906 -w Siva_First.wsgi

uwsgi --http :8000 --chdir /export/App/DevOPS/Python_20160906 -w Python_20160906.wsgi

(3)直接访问验证

curl http://127.0.0.1:8000/

4.写uwsgi配置文件(肯定不能手工命令起啊)###

mkdir -p /export/servers/nginx/conf/uwsgi/

cd /export/servers/nginx/conf/uwsgi/

vim Python_20160906.ini

<1>project:项目名

<2>chdir:指定django项目的根路径

<3>module:对应了上面命令行启动的-w参数,指定django项目的wsgi文件位置

<4>master:是否有主进程

<5>processes:几个工作进程

<6>socket:创建的socket套接字文件位置

<7>chmod-socket:套接字权限

<8>vacuum:当服务器退出的时候自动删除unix socket文件和pid文件

[uwsgi]

project = Python_20160906

chdir = /export/App/DevOPS/%(project)

module = %(project).wsgi

master = true

processes = 5

socket = /export/App/DevOPS/%(project)/%(project).sock

chmod-socket = 664

vacuum = true

5.开启uwsgi服务(启动后会创建sock套接字文件)###

uwsgi --ini /export/servers/nginx/conf/uwsgi/Python_20160906.ini &

6.变更nginx配置文件###

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

server

{

listen 80;

server_name devops.xx.com devops.xx.local;

access_log /export/servers/nginx/logs/devops.xx.local/devops.xx.local_access.log main;

error_log /export/servers/nginx/logs/devops.xx.local/devops.xx.local_error.log warn;

error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 506 = http://www.jd.com/error2.aspx;

charset utf-8;

# #########################核心配置就这2行#########################################

location / {

include /export/servers/nginx/conf/uwsgi_params;

uwsgi_pass unix:/export/App/DevOPS/Python_20160906/Python_20160906.sock;

}

#################################################################################

location /static/ {

alias/export/App/DevOPS/Python_20160906/static/;

}

# websocket的匹配

location ~ /index/websocket_demo/ {

include /export/servers/nginx/conf/uwsgi_params;

uwsgi_pass unix:/export/App/DevOPS/Python_20160906/Python_20160906.sock;

proxy_redirect off;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

location = / {

rewrite ^ /index/ permanent;

}

location = /favicon.ico {

rewrite ^ /static/image/favicon.ico permanent;

}

location /devops/ {

rewrite ^/devops/(.*)$ /$1 last;

}

location /software/ {

alias /export/Data/software/;

allow all;

autoindex on;

autoindex_exact_size off;

autoindex_localtime on;

}

}

8.重启nginx###

/etc/init.d/nginx restart

9.uwsgi支持django后端的websocket(dwebsocket模块)###

(1)修改django项目的settings.py,添加一条数据

WEBSOCKET_FACTORY_CLASS = 'dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory'

(2)修改uwsgi的配置文件,添加异步选项

async = 30

ugreen = ''

http-timeout = 300

(3)重启uwsgi服务

killall uwsgi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值