CentOS7 + Django2.1 + uwsgi + nginx配置
假设已经可以运行Django项目,可以runserver。也已经安装了uwsgi和nginx
现在需要进行配置。
刚开始进行uwsgi测试就不行,提示bash:‘uwsgi’ Command not found
执行如下命令增加软链,可以解决uwsgi找不到的问题,不过使用的是uwsgi3命令
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
将你的django项目放到你想放的路径下,例如/root/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp"
在你的django项目下新建 myproject.xml,内容如下:
<uwsgi>
<socket>127.0.0.1:8996</socket><!-- 内部端口,自定义 -->
<chdir>/home/www/myproject</chdir><!-- 项目路径 -->
<module>myproject.wsgi</module>
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
wq保存
此上就为uwsgi的配置,不用做.ini,就只用写个.xml
配置nginx:
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中打开nginx.conf,在一大段注释的server后面加入以下内容:
server {
listen 8997; #暴露给外部访问的端口
server_name localhost;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8996; #外部访问8997就转发到内部8996
}
location /static/ {
alias /root/myproject/myapp/static/; #项目静态路径设置(根目录)
}
}
wq保存后进入/usr/local/nginx/sbin/目录
执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:./nginx
终端没有任何提示就证明nginx启动成功
这里要监听什么端口就写啥,比如我的话是106.13.9.45:8997(这里换成自己的外网ip),然后浏览器打开会出现nginx work就是成功了,当然不想写端口,想直接通过ip106.13.9.45访问的话 就listen 80
开启Django项目:
进入django项目路径,执行以下命令:
uwsgi3 -x myproject.xml
以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
106.13.9.45:8997(请将该ip替换成你的服务器ip)
配置完发现自己静态文件访问不了,查看nginx的log发现:
2019/03/15 10:58:59 [error] 106026#0: *2 open() "/root/Course_website/static/plugin/highlight/highlight.pack.js" f
ailed (13: Permission denied), client: 120.196.99.35, server: localhost, request: "GET /static/plugin/highlight/highlight.pack.js HTTP/1.1", host: "106.13.9.45:8996", referrer: "http://106.13.9.45:8996/"
Permission denied 权限问题
解决方法:在/usr/local/nginx/conf/中打开nginx.conf
首行有个#user XXXXX
去掉注释,修改成 user root,重启nginx
关于nginx启动的命令参考:https://www.cnblogs.com/xiaojf/p/7891345.html
关于重新上传项目(views、urls、html)后依旧无变化,先尝试清理缓存,然后重启uwsgi,重启nginx。
uwsgi基本操作
启动
uwsgi -x xxxx.xml #xml配置
uwsgi -i xxxx.ini #ini配置
重启
uwsgi对于不同配置不一样,我自己是xml配置,没有直接重启的命令,但是关闭后再打开的方法都是通用的。
利用
ps -ef | grep uwsgi
查询出uwsgi运行情况,找到自己要重启的项目,然后将它的进程全都kill了
kill -INT pid
如果只有一个项目或者想重启所有uwsgi可以使用:
killall -INT uwsgi
Tips:因为之前添加软链,有时会输入uwsgi3有时会输入uwsgi,但是效果是一样的,如果查询出来是通过uwsgi3启动的就killall也是uwsgi3。
nginx重启可以类似,kill了nginx的进程,然后到sbin下 ./nginx
CentOS7 + Django2.1 + uwsgi + nginx配置的更多相关文章
- Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)
本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...
- 最简单的uwsgi+nginx配置多个django站点
1. nginx.conf http{ server { listen 80; server_name www.web1.com ....... location / { uwsgi_p ...
- django2.0 uwsgi nginx
[TOC]# 1.安装pip```sudo apt-get updatesudo apt-get install python-pip```# 2.使用pip 安装virtualenv 和 virtu ...
- [Django笔记] uwsgi + nginx 配置
django 和 nginx 通过 uwsgi 来处理请求,类似于 nginx + php-fpm + php 安装nginx 略 安装配置uwsgi pip install uwsgi 回想php- ...
- HttpRunnerManager接口测试平台部署在服务器上(Centos + python3.6 + Mysql5.7 + uwsgi + nginx)
整个思路:HttpRunnerManager + python3.6 + Mysql5.7 + uwsgi + nginx 安装依赖环境,将源代码传到服务器,修改settings,增加uwsgi配置, ...
- 经过各种坑之后centos+ uwsgi + nginx +django 终于配好了
https://pypi.python.org/pypi/setuptools#downloads https://www.python.org/ftp/python/ 开机 加入 uwsgi ngi ...
- centos7 nginx配置httpsCenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx环境部署(二)
1.yum安装nginx 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarch/RPMS/ngin ...
- django2+python3+uwsgi+centos7部署网站
Centos7中安装Python虚拟环境 2018年08月27日 00:09:36 kaichenkai 阅读数:984 1.为什么要搭建虚拟环境? 问题:如果在一台电脑上, 想开发多个不同的项目, ...
- 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署
准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...
随机推荐
- 函数function
function add(x,y,z){ sum = x + y +z; document.write(x+"+"+y+"+"+z+"="+ ...
- mysql,Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "
# mysql -uroot -pEnter password:ERROR 2002 (HY000): Can't connect to local MySQL server through sock ...
- JavaScript heap out of memory解决方法
在 npm 打包的时候,node环境控制台报错了,JavaScript heap out of memory 解决方法如下: 不管你是angular还是其他的,找到 \node_modules\.bi ...
- Java框架spring Boot学习笔记(八):@PropertySource,@Value注解
获取配置文件 忽略配置文件不存在时报错
- 【mybatis】使用mybatis框架中踩过的坑
好久没来记录一下自己的学习情况,最近都在学框架,今天来记录一下关于mybatis框架的学习过程中碰过的一些问题: 以下内容可能稍微有点凌乱,因为是把之前遇到过的错误或异常都集中一起了,不过我已经把问题 ...
- SpringCloud Zuul网关的简单理解
Zuul网关功能 请求路由.服务路由.请求过滤 请求路由 参数配置如下所示,所有能够配置path规则的请求,都会被zuul网关转发到对应的url上. zuul.routes.user-service. ...
- pip升级后出现cannot import name 'main'
运行pip install --upgrade pip还有出现这个情况. cd /usr/bin/pip3 修改成: from pip import __main__ if __name__ == ...
- mysql5.7.21安装要点记录
下载的是Zip解压缩版,Windows系统,因为很久没有在Windows上安装过,这次安装发现了几处和以前安装不一样的地方,特记录如下,供大家参考 MySQL配置文件位置 bin目录下的mysql_c ...
- VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1嵌入清单问题 属性: 项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”. 项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”. 2文件老旧: c ...
- Vue --1
1.2 vue.js库的基本使用 在github下载:https://github.com/vuejs/vue/releases 在官网下载地址: https://cn.vuejs.org/v2/gu ...