系统版本 CentOS/7 64位

1.安装使用python3

创建python3目录

sudo mkdir /usr/local/python3

进入python3目录

cd /usr/local/python3

下载python3压缩包

sudo wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

解压

tar -zxvf Python-3.6.1.tgz

编译前需要多个依赖(如果不安装python安装过程会报错,pip,数据库等等缺失):

yum install openssl-devel -y

yum install zlib-devel -y

yum install sqlite-devel

yum install pcre pcre-devel

进入Python-3.6.1,指定安装路径

./configure --prefix=/usr/local/python3

编译

make

安装

sudo make install

指定软连接

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

2.安装和使用virtualenv

使用pip3安装virtualenv:

pip3 install virtualenv

创建虚拟环境:

python3 -m venv /home/env35/myproject

进入myproject目录:

cd /home/env35

进入虚拟环境:

source myproject/bin/activate

3.安装第三方库&&上传项目并配置(虚拟环境中)

查看当前的第三方模块 :

pip list

安装django模块:

pip install django==1.10.8

如果觉得pip版本过低,可以升级下pip:

pip install --upgrade pip

压缩win下的项目上传至linux中

rz

无法使用rzm命令,安装指南请戳:https://www.cnblogs.com/dalyday/p/10032858.html

解压项目:

unzip day17_crm.zip

如果 出现无法解压的情况,说明项目里包含多级文件夹,需要安装unzip才能解压:

yum install unzip

进入项目修改settings.py配置文件:

vim /home/env35/day17_crm/day17_crm/settings.py

ALLOWED_HOSTS = ['*',]     # 允许所有端口访问

# 注释掉static路径
#STATICFILES_DIRS = (
# os.path.join(BASE_DIR,'static'),
#) # 部署项目需添加下面一段,方便收集整个项目静态资源
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

收集静态文件:

cd day17_crm

python manage.py collectstatic

4.安装nginx

新增yum源文件

vim /etc/yum.repos.d/nginx.repo

拷贝如下内容:

[nginx]
name=nginx repo
# 本人用的是centos7,系统跟版本需改成跟自己相对应的!!
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

保存检查yum是否配置好:

yum list|grep nginx

nginx.x86_64                                1:1.14.1-1.el7_4.ngx       @nginx
nginx-filesystem.noarch 1:1.12.2-2.el7 @epel
nginx-debug.x86_64 1:1.8.0-1.el7.ngx nginx
nginx-debuginfo.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-geoip.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-geoip-debuginfo.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-image-filter.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-image-filter-debuginfo.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-njs.x86_64 1:1.14.1.0.2.5-1.el7_4.ngx nginx
nginx-module-njs-debuginfo.x86_64 1:1.14.1.0.2.5-1.el7_4.ngx nginx
nginx-module-perl.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-perl-debuginfo.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-xslt.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-module-xslt-debuginfo.x86_64 1:1.14.1-1.el7_4.ngx nginx
nginx-nr-agent.noarch 2.0.0-12.el7.ngx nginx
pcp-pmda-nginx.x86_64 3.12.2-5.el7 base

安装:

sudo yum -y install nginx

查看是否安装完成:

rpm -q nginx

启动nginx:

service nginx start

# nginx一些操作指令
systemctl status nginx.service # 查看服务当前状态
systemctl restart nginx.service # 重新启动服务
systemctl stop nginx.service # 停止服务

浏览器输入公共ip即可访问nginx主页!

接下来修改Nginx配置文件与项目关联起来,将nginx目录下的配置文件拷贝到项目同级目录

cd /etc/nginx/

cp /etc/nginx/nginx.conf /home/env35/nginx.conf

修改nginx配置文件,server添加如下字段:

cd /home/env

vim nginx.conf

server {
# the port your site will be served on
listen 81;
# the domain name it will serve for
server_name esc ; # substitute your machine's IP address or FQDN
charset utf-8; # max upload size
client_max_body_size 75M; # adjust to taste location /static {
alias /home/env35/day17_crm/static; # 指向django的static目录
} # Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass 127.0.0.1:8000; # 填写阿里云服务器私网,这个一定要和uwsgi.ini文件的端口一致
include /home/env35/uwsgi_params; # the uwsgi_params file you installed
}
}

项目同级目录下创建uwsgi_params文件,直接拷贝以下内容(nginx目录下如果可以直接拷贝过来)

vim uwsgi_params

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

设置nginx启动时指定这个配置文件

/usr/sbin/nginx -c /home/env35/nginx.conf

创建软连接

ln -s /home/env35/nginx.conf /etc/nginx/conf.d/

5.安装uwsgi

进入虚拟环境,安装uwsgi模块:

pip install uwsgi

在项目的同级目录下添加uwsgi的配置文件:

vim uwsgi.ini

[uwsgi]
#项目目录
chdir = /home/env35/day17_crm
#指定项目的application
module = day17_crm.wsgi:application home = /home/env35/myproject
#指定ip
http= 127.0.0.1:8000 # 阿里云私有IP,与nginx.conf配置文件一致
#指定静态文件
static-map = /static=/home/env35/day17_crm/static
#启用主进程
master = true
#pidfile= /home/env35/uwsgi.pid
#设置日志目录
#logfile= /home/env35/uwsgi.log
#socket权限设置
chmod-socket = 755
#进程个数
processes =10
#自动移除unix Socket 和 Pid 文件 当服务停止的时候
vacuum = true
#设置自动中断时间
harakiri = 30
#设置缓冲
post-buffering = 4096

看看当前的目录(注意红色框,都是需要新增的文件)

启动uwsgi :

uwsgi --ini uwsgi.ini

进程跑起来,则成功了

6.运行项目

做完以上,你已经成功搭建了Nginx与uwsgi了,好了,全部再来操作一次

进入myproject目录:

cd /home/env35

进入虚拟环境:

source myproject/bin/activate

启动Nginx:

service nginx start

启动uwsgi:

uwsgi --ini uwsgi.ini

浏览器输入阿里云共有IP即可访问:

阿里云搭建nginx + uWSGI 实现 django 项目的更多相关文章

  1. 阿里云实现简单的运行 Django 项目

    首先申请一个阿里云账号,买一个阿里云服务器是必须的,对于一个学生来讲,按道理说,在不打折不搞活动的时候,价格还是蛮贵的,所以说,同志们,革命尚未成功,一定要挺住!!! 申请了阿里云,消费完毕,登录阿里 ...

  2. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...

  3. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

  4. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  5. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

  6. nginx+uwsgi部署django项目

    1.django项目部署前需要生成admin的静态资源文件 (1)生成admin的静态资源文件 # 关闭debug模型 DEBUG = False # 允许所有域名访问 ALLOWED_HOSTS = ...

  7. nginx+uwsgi启动Django项目

    1.安装项目环境 系统环境:ubuntu16.04 python环境:python3.5.2 Django版本:django1.11.7 nginx环境:nginx_1.10.3 虚拟环境:virtu ...

  8. Nginx + uWSGI 部署Django 项目,并实现负载均衡

    一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...

  9. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

随机推荐

  1. 【JVM从小白学成大佬】5.垃圾收集器及内存分配策略

    前面介绍了垃圾回收算法,接下来我们介绍垃圾收集器和内存分配的策略.有没有一种牛逼的收集器像银弹一样适配所有场景?很明显,不可能有,不然我也没必要单独搞一篇文章来介绍垃圾收集器了.熟悉不同收集器的优缺点 ...

  2. Scala 系列(九)—— 继承和特质

    一.继承 1.1 Scala中的继承结构 Scala 中继承关系如下图: Any 是整个继承关系的根节点: AnyRef 包含 Scala Classes 和 Java Classes,等价于 Jav ...

  3. CodeForces 909D

    题意略. 思路: 将字符分桶,然后暴力去扫,扫完合并.假设有k个桶,每个桶里有n / k个数,那么我们应该要扫 n / (2 * k)次,每次的复杂度是k,最后算得复杂度是O(n). 详见代码: #i ...

  4. python 生成式,生成器,迭代器,可迭代

    1.生成器就是迭代器2.生成式用[](中括号)包起来,生成器用()(圆括号)包起来3.生成式在使用前已经在内存中存在,生成器只有在使用时才生成4.迭代器是可以用.__next__()不断取出下一值,直 ...

  5. 快速掌握SPSS数据分析

      SPSS难吗?无非就是数据类型的区别后,就能理解应该用什么样的分析方法,对应着分析方法无非是找一些参考资料进行即可.甚至在线网页SPSS软件直接可以将数据分析结果指标人工智能地分析出来,这有多难呢 ...

  6. win8,右键添加notepad++

    1.下载并安装notepad++ 2.创建txt文件test1.txt,内容如下: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\ ...

  7. SPOJ - Find The Determinant III 计算矩阵的行列式答案 + 辗转相除法思想

    SPOJ -Find The Determinant III 参考:https://blog.csdn.net/zhoufenqin/article/details/7779707 参考中还有几个关于 ...

  8. “玲珑杯”ACM比赛 Round #18 1147 - 最后你还是AK了(思维,边的贡献)

    题目链接:http://www.ifrog.cc/acm/problem/1147 题解:这题很容易想到的是边的贡献也就是每条边最多被取到几次,和点的贡献类似,那些加边只要加在边贡献大的边上就行.然后 ...

  9. 解决问题:SpringMvc中转发的html文件中文是乱码

    目录 1.环境说明,以及前言 2.问题描述: 3.失败的方法(这里写失败并不代表在其他情况不管用) 3.1 html网页本身编码不是UTF-8(推荐尝试) 3.2 web.xml中没有设置配置编码方式 ...

  10. 现代 JavaScript 教程到底是什么?

    手册与规范 <现代 JavaScript 教程>是开源的现代 JavaScript 从入门到进阶的优质教程,它旨在帮助你逐渐掌握 JavaScript 这门语言.但是一旦你已经熟悉了这门语 ...