django+nginx+uwsgi_cent0s7.4 部署

几条命令

# 查看是否有 uwsgi 相关的进程
ps -aux|grep "uwsgi" # 杀死有关 uwsgi 相关的进程
pkill -9 uwsgi # 使用yum install nginx 安装nginx的安装目录
/etc/nginx/

 

 

安装环境

# 安装 gcc 环境
yum install -y gcc # 为python安装pip -- 这里的路径在执行的时候,估计会有问题,涉及相对路径和绝对路径
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
tar -xf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python setup.py install
cd ..
rm -rf * # 安装 Django
pip install django==1.8 # 解决uwsgi安装报错问题
yum install -y python-devel.x86_64 # 安装uwsgi
pip install uwsgi # 安装 nginx
yum install -y nginx

修改django配置

# 将debug模式改成False
DEBUG = False # 允许访问的 host, 可以写成单独的 host, 也可以直接写 "*",代表全部
ALLOWED_HOSTS = ['*', ] STATIC_URL = '/static/' # 修改 静态文件的位置
if DEBUG:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

 

 

收集静态文件

python manage.py collectstatic

这条命令会将所有 Django 项目的静态文件搜集到上面配置中的,静态文件的位置

修改uwsgi以及nginx配置

  • uwsgi配置

[uwsgi]
# 使用socket协议,直接绑定 127.0.0.1:8888,和下面http任意存在一个就可以了
# 这里的1207.0.01:8888 在nginx中也有用到
socket=127.0.0.1:8888
# 使用http协议,监听端口,可以是 0.0.0.0:8888(比socket多了一层封装)
# http = :8888
# 本地项目目录
chdir = /home/dja/cost_total/
# 项目 wsgi.py 文件目录
wsgi-file = /home/dja/cost_total/cost_total/wsgi.py
# 该项目使用的进程数,一般使用电脑的 核数
processes = 1
# 开启的线程数
threads = 1
# 指定静态文件路径
static-map=/static=/home/dja/cost_total/static # pidfile = /opt/classiclaw/nginx/logs/uwsgi.pid
# 日志文件的位置
daemonize = /var/log/nginx/uwsgi.log

  

  • nginx配置

# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf; events {
worker_connections 1024;
} http {
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 /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048; include /etc/nginx/mime.types;
default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf; # 修改的配置内容 -->开始
upstream django { # 设置别名,如将 127.0.0.1:8888 设置一个别名,叫 django,下面可以直接使用这个别名
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8888; # for a web port socket (we'll use this first)
} server { # 这个server标识我要配置了
listen 80; # 80 是http默认的端口, 443 是https默认的端口(网页一般使用这两个端口)
server_name _; # 你访问的路径前面的url名称,后面可以写一条短横杠(我没写,报错了)
charset utf-8; # Nginx编码 # 指定静态文件路径,含义为,如果访问的是 /static 开头的,走下面的位置获取内容
# 之前我写 /static/ 没有效果,后来修改为 /static
location /static { # 如果是 /static 开头的,那么直接走这里,就是 静态文件存放的位置
alias /home/dja/cost_total/static;
} # 指定项目路径uwsgi
# 如果是 其它开头的,那么直接走这里,就是 我们django项目中,uwsgi起的服务
location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
# 指定uwsgi的sock文件所有动态请求就会直接丢给它
uwsgi_pass django; # 如果上面写别名了,那么,这里还可以直接使用别名
# uwsgi_pass 127.0.0.1:8888; # 如果上面没有写别名,那么这里可以直接写 url
# 这个配置和uwsgi中绑定的一致,这里直接写127,这样可以之通过127,也就是这个代理进行访问
}
}
# 修改的配置内容 -->结束

 

 

启动服务

  • 启动 uwsgi

# 直接uwsgi 后面跟 uwsgi 文件的路径
uwsgi uwsgi.ini

  

  • 启动 nginx

# 我使用的系统是 CentOs7.4,所以使用了 systemctl 命令启动
systemctl start nginx

  

django+nginx+uwsgi_cent0s7.4 部署的更多相关文章

  1. django+nginx+uwsgi 项目部署

    Django虽然自带一个Server,但只能作为开发时测试使用,我们需要一个可以稳定而持续的服务器对网站进行部署,比如Apache, Nginx, lighttpd等,本篇将利用nginx和uWSGI ...

  2. Django + nginx + uswgi 的部署总结

    一.引言 自己小组内写了一个网站,需要部署到远程服务器,搜索了好多资料,但是大部分资料都比较繁琐,并且没有一个教程能够直接从头到尾适合,在部署过程中,我是按照很多教程然后综合试验着逐渐部署成功,其中有 ...

  3. django+nginx+gunicorn+supervisro部署

    一.nginx 1.yum install -y nginx  #默认安装后的配置文件路径:/etc/nginx/nginx.conf 2.新建项目的配置文件,因为默认配置文件会包含子配置文件,目录为 ...

  4. django+nginx+supervisor+gunicorn+gevent 网站部署

    django+nginx+supervisor+gunicorn+gevent 网站部署 django,nginx,supervisor,gunicorn,gevent这几个都是在本领域大名鼎鼎的软件 ...

  5. Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)

    本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...

  6. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

  7. Nginx 和 Gunicorn 部署 Django项目

    目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...

  8. ubuntu+Django + nginx + uwsgi 部署

    ubuntu+Django + nginx + uwsgi 部署 0.前期准备 注意:以下几件事都必须在激活虚拟环境下完成 运行以下命令生成项目所需的依赖列表,会在项目根目录生成一个requireme ...

  9. 将树莓派变成一个web服务器(2):Nginx+Flask+uWSGI部署全过程

    1)安装Flask,uwsgi,nginx sudo apt-get update sudo apt-get install python-flask #Flask sudo apt-get inst ...

随机推荐

  1. http预请求 options

    问题 使用axios请求接口时,出现了发出两次请求的情况:一个是请求OPTIONS,一个是正常的POST请求:查资料发现与跨域请求有关. 概念 MDN中有提到: 出于安全原因,浏览器限制从脚本内发起的 ...

  2. ubuntu18.04英文环境解决各种软件中文乱码问题

    如果要同时支持中文也支持英文,进入到该软件的字体设置界面,字体格式选择为: Noto Sans CJK SC

  3. linux flock()

    表头文件  #include<sys/file.h> 定义函数  int flock(int fd,int operation); 函数说明  flock()会依参数operation所指 ...

  4. Js类的静态方法与实例方法区分以及jQuery如何拓展两种方法

    上学时C#老师讲到对象有两类方法,静态方法(Static)和实例方法(非Static),当时不理解静态是为何意,只是强记. 后来从事前端工作,一直在对类(即对象,Js中严格来说没有类的定义,虽众所周知 ...

  5. php不支持多线程怎么办

    PHP 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 --enable-maintainer-zts 参数重新编译 PHP,这个参数是指定编 ...

  6. from、includes、indexOf

    from.includes.indexOf:https://blog.csdn.net/j59580/article/details/53897630?utm_source=blogxgwz1 语法 ...

  7. 【转载】sizeof()、strlen()、length()、size()详解和区别

    c/c++中获取字符串长度.有以下函数:size().sizeof() .strlen().str.length();一.数组或字符串的长度:sizeof().strlen()1.sizeof():返 ...

  8. hdu 6298 Maximum Multiple(规律)

    hdu6298 Maximum Multiple 题目传送门 题意: 给你一个整数n,从中找出可以被n整除的三个数x,y,z: 要求x+y+z=n,且x*y*z最大. 思路: 开始一看T到1e6,n也 ...

  9. Springboot-技术专区-war包部署在Tomcat上并修改默认端口

    springboot项目内置Tomcat,直接打成jar包在dos下运行即可,但有时我们需要用war包以非内嵌Tomcat的方式来部署,以下是本人的实际经验 1.首先需要修改pom.xml文件 < ...

  10. c# 添加数据

    /// <summary> /// 新增一条省份记录 /// </summary> /// <param name="model"></p ...