ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

使用Nginx+uwsgi部署Django项目

2020-02-20 11:00:10  阅读:167  来源: 互联网

标签:http log nginx Django Nginx yum location uwsgi


一、Nginx的安装

nginx的安装方式可能不同,具体取决于操作系统。本文环境是Centos7,使用Linux在线安装。

1、安装先决条件

yum install yum-utils

2、设置yum存储库

vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

3、安装

(1)默认情况下,使用稳定的nginx软件包的存储库。如果要使用主线nginx软件包

sudo yum-config-manager --enable nginx-mainline

(2)安装

yum install nginx

当提示接受GPG密钥时,请验证指纹是否匹配 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62,如果是,则接受它。说白了就是一路y安装完毕。

官方文档:http://nginx.org/en/linux_packages.html

二、uwsgi安装与配置

1、安装

pip install uwsgi

2、编写配置文件(将配置文件放在manage.py同级目录下)

[uwsgi]
# 使用nginx连接时 使用
socket=0.0.0.0:8003

# 直接作为web服务器使用
#http=0.0.0.0:8003

# 配置工程目录
chdir=/root/os_setup_admin

# 配置项目的wsgi目录。相对于工程目录
wsgi-file=os_setup_admin/wsgi.py

# 配置线程,线程信息
processes=4

threads=10

enable-threads=True

pidfile=uwsgi.pid

daemonize=uwsgi.log

3、命令

(1)启动

uwsgi --ini uwsgi.ini

使用ps -ef|grep uwsgi命令可以查看

 

 uWSGI 通过 xxx.ini 启动后会在相同目录下生成一个 xxx.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。

(2)重启

uwsgi --reload uwsgi.pid

(3)停止

uwsgi --stop uwsgi.pid

三、配置以及启动Nginx

1、配置

Nginx的默认配置在/etc/nginx下,我们可以复制一份到我们的项目目录下。对其进行修改。

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {     # 指定工作模式以及连接上限
  # user epoll; # 高效工作模式 worker_connections
1024; # 定义每个进程连接上限 } http { # 最核心模块,主要负责http服务器相关配置,包含server,upstream子模块 include /etc/nginx/mime.types; # 设置mime文件的类型 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 /var/log/nginx/access.log main; sendfile on; # 设置高效文件传输 #tcp_nopush on; keepalive_timeout 65; # 设置客户端连接超时 #gzip on; #include /etc/nginx/conf.d/*.conf; server { listen 8000; # 监听的端口 server_name localhost; # 指定ip地址或者域名,多个域名使用空格隔开 root /root/os_setup_admin; # 指定这个虚拟主机的根目录(项目目录)
  # location核心中的核心,以后的主要配置都在这
  # 主要功能:定位url,解析url,支持正则匹配,还能支持条件,实现动静分离
location /static { # 静态资源加载的路径 alias /root/os_setup_admin/static; # }   # alias:别名,定义location的其他名字,在文件系统中能够找到, 如果location指定了正则表达式,alias则会引用
  # 正则表达式中的捕获,alias替代location中匹配部分,没有匹配部分就会在文件系统中搜索

location / { #对接uwsgi include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:8003; } } }

2、启动

nginx -t 不运行,仅测试配置文件

nginx -c configpath  从指定路径加载配置文件

nginx -t -c configpath  测试指定配置文件

 

标签:http,log,nginx,Django,Nginx,yum,location,uwsgi
来源: https://www.cnblogs.com/huiyichanmian/p/12334782.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有