使用nginx+uwsgi部署Django项目

news/2024/7/3 18:12:00 标签: python, django, uwsgi, nginx

一:安装nginx

1:安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2:安装PCRE

wget https://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure --prefix=/usr/local/pcre
make && make install

3:安装nginx

cd ~
wget https://nginx.org/download/nginx-1.5.6.tar.gz
tar -zxf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install

4判断nginx是否安装成功

/usr/local/nginx/sbin/nginx -v

二:安装uwsgi

1:安装uwsgi

pip install uwsgi(pip3的话使用:pip3 install uwsgi)

2:判断uwsgi是否安装成功

uwsgi --version

三:Nginx+uwsgi部署Django项目

1:uwsgi配置

vim test.ini

test.ini文件中内容如下:

# uwsig使用配置文件启动
[uwsgi]
socket = 127.0.0.1:9090
master = true # 启用主进程
vhost = true #多站模式
#启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定静态文件
static-map=/static=/data/www/test/static
no-site = true #多站模式时不设置入口模块和文件
workers = 2 #子进程数
reload-mercy = 10
vacuum = true #退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-size = 30000
pidfile = /data/www/script/test.pid #pid文件,用于下面的脚本启动、停止该进程
daemonize = /data/www/script/test.log  #日志文件
pythonpath = /usr/local/lib/python3.6/site-packages #Python环境地址

2:nginx配置

server {
    listen       80;
    server_name  local.test.com;
    
    location / {            
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:9090;  #必须和uwsgi中的设置一致           
        uwsgi_param UWSGI_SCRIPT test.wsgi; #入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
        uwsgi_param UWSGI_CHDIR /data/www/test;#项目根目录
        index  index.html index.htm;
        client_max_body_size 35m;
    }
}

3:启动服务

killall -9 nginx   #停止nginx
killall -9 uwsgi   #停止uwsgi
uwsgi --ini /data/www/script/test.ini  #启动uwsgi脚本
/usr/local/nginx/sbin/nginx #启动nginx

4:判断是否配置成功

在浏览器访问local.test.com 如果访问异常可能是防火墙问题

解决:

#开放指定端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save #保存配置 
/etc/rc.d/init.d/iptables restart #重启服务

#关闭防火墙
systemctl stop firewalld.service  #关闭防火墙
systemctl disable firewalld.service #开机时关闭防火墙


http://www.niftyadmin.cn/n/1583409.html

相关文章

.NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...

前言 在以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,FreeSql,SqlSugar,Dapper,Enti…

Django作为接口时跨域问题解决

一:安装django-cors-headerspip install django-cors-headers二:配置settings.py# Application definition INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,…

2019年,你需要关注这些Node API和Web框架

对于Node.js框架和开源软件来说,2018年是非常有趣的一年。开发者社区讨论了企业赞助对开源项目的作用以及如何维护那些没有经济支持却有数百万人使用的项目。同样,安全问题也得到了极大关注,一些流行的Node/JS软件包被劫持,Github…

python使用Crypto库实现加密解密

一:crypto库安装pycrypto,pycryptodome是crypto第三方库,pycrypto已经停止更新三年了,所以不建议安装这个库;pycryptodome是pycrypto的延伸版本,用法和pycrypto 是一模一样的;所以只需要安装pyc…

Celery-------异步任务

Celery-------异步任务 1.什么是Celery?  Celery 是基于Python实现的模块, 用于执行异步定时周期任务的  其结构的组成是由   1.用户任务 app   2.管道 broker 用于存储任务 官方推荐 redis rabbitMQ / backend 用于存储任务执行结果的   3.员工 worker 2…

[转载]Linux中的网络接口及LO回环接口

转自:https://blog.csdn.net/weixin_39863747/article/details/80564358 Linux中的网络接口及LO回环接口 2018年06月04日 10:55:03 weixin_39863747 阅读数:10491、linux的网络接口之扫盲 (1)网络接口的命名 这里并不存在一定的命名规范,但网…

laravel 安装

一:laravel安装1:laravel最新版安装composer global require "laravel/installer" #使用Composer下载Laravel安装程序 laravel new XXX #创建一个laravel项目,XXX为项目名称2:laravel指定版本安装composer create-project laravel…

Java 11 究竟比 8 快了多少?

阅读本文大概需要 1.2 分钟。作者:h4cd来源:开源中国社区开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告。当前使用量最大的 Java 版本是 8,所以测试者用 Java 8 与 Java 11 进行对比测试。GC 是影响 Java 性能的…