nginx + uwsgi 发布django项目!(linux为centos7)

1.在linux上安装python3,参考链接:https://www.cnblogs.com/kimyeee/p/7250560.html

安装python3时候,建议不要更改默认的python ,,默认python指向python2,,linux有一些东西需要用到,,比如yum,,如果将python默认指向python3,,这些东西将不可用

2.安装django,直接pip3 install django

3.安装uwsgi:

安装依赖:yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

安装uwsgi:pip3 install uwsgi

查看版本:uwsgi --version

测试:

准备测试文件test.py,代码如下:

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

将文件上传linux ,使用lrzsz , 安装lrzsz:yum install lrzsz

然后,运行 uWSGI:

uwsgi --http :8000 --wsgi-file test.py

打开下面url,浏览器上应该显示hello world

curl http://127.0.0.1:8000

效果展示:

4.链接uwsgi和django

将自己的django项目上传服务器,安装项目中需要的模块

进入上传的项目文件夹 与manage.py同目录运行:

uwsgi --http :8000 --wsgi-file appname/wsgi.py #appname为你自己的目录

在其他窗口打开连接:http://127.0.0.1:8000

效果:

出来显示的是首页前段代码

这证明上边的步骤没问题

5.安装配置nginx

(1)安装

wget http://nginx.org/download/nginx-1.9.5.tar.gz

tar xf nginx-1.9.5.tar.gz

cd nginx-1.9.5

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module

make && make install

或者参考

http://cantgis.blog.51cto.com/5788192/1540004

(2)启动:进入安装的nginx目录下

/usr/local/nginx/sbin/

启动:

./nginx  start

重启:

./nginx -s reload

启动好之后在我们电脑的浏览器输入服务器ip会显示nginx页面,如图:

6.使用uwsgi的配置文件运行django

#user root nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    include uwsgi_params;#没有这个会报错在uwsgi错误日志里:self.method = environ[‘REQUEST_METHOD‘].upper();KeyError: ‘REQUEST_METHOD‘
    default_type  application/octet-stream;

    #log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
    #                  ‘$status $body_bytes_sent "$http_referer" ‘
    #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
       #server_name  localhost;
    server_name  对外访问ip;
    access_log /www/www/access.log;
        error_log /www/www/error.log;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        uwsgi_pass     127.0.0.1:8088;#和uwsgi端口对应
            uwsgi_read_timeout 300;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}
    location /static/ {
            alias  /www/www/webJB/webjb/static/;
            index  index.html index.htm;
        }

}

新建一个my_uwsgi.ini ,内容如下:

[uwsgi]
#http = :9000
#the local unix socket file than commnuincate to Nginx
socket = 127.0.0.1:8088
# the base directory (full path)
chdir = /www/www/webJB/webjb
# Django‘s wsgi file
wsgi-file = webjb/wsgi.py
# maximum number of worker processes
processes = 4
#thread numbers startched in each worker process
threads = 2

vacuum = true
##monitor uwsgi status
#stats =127.0.0.1:9191
## clear environment on exit
#vacuum          = true
#stopsignal = QUIT

daemonize = /www/www/webJB/uwsgi.log

#stats=/root/uwsgi/uwsgi.status
#pidfile=/root/uwsgi/uwsgi.pid

将文件放入manage.py同目录下

运行:uwsgi --ini my_uwsgi.ini

如图:

即可,

重启nginx,访问域名,可以了

原文地址:https://www.cnblogs.com/dahuag/p/9809786.html

时间: 2024-10-27 00:51:29

nginx + uwsgi 发布django项目!(linux为centos7)的相关文章

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

nginx+uwsgi启动Django项目

1.安装项目环境 系统环境:ubuntu16.04 python环境:python3.5.2 Django版本:django1.11.7 nginx环境:nginx_1.10.3 虚拟环境:virtualenv15.1.0 uwsgi版本:uwsgi2.0.17.1 安装并进入项目虚拟环境: sudo apt-get install virtualenv virtualenv -p python3 env_my_project source env_my_project/bin/activate

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

nginx + uwsgi 部署 Django+Vue项目

nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低 python3 manage.py runserver 0.0.0.0:8000 使用uwsgi 去启动django项目,支持并发更多 准备前后端代码 先从vue前端搞起 解决node环境 更改vue发送请求的接口地址, 这个vue发送的地址,应该是

使用uWSGI部署django项目

先说说什么是uWSGI吧,他是实现了WSGI协议.uwsgi.http等协议的一个web服务器,那什么是WSGI呢? WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx)与应用服务器(如uWSGI服务器)通信的一种规范(协议). 还有一种wsgi,uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信.uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information). 部署步骤: 1.

Nginx + uWSGI + Python + Django部署实例

Nginx: Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎.能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器

nginx+uwsgi+djangos部署项目完整

1.基本信息 Linux 版本:SentOS7.4 Python 版本:3.7.1 2.下载 uWSGI pip3 install uwsgi uwsgi 主要的任务是座位分发路由的服务器. 先写一个测试文件,测试 uwsgi 是否可以正常使用. # test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World