一、安装nginx

以前的博客我有写,这里就不写了

http://www.cnblogs.com/wt11/p/6420442.html

二、安装mysql

我用的mysql5.7  64位的二进制包,官网下载安装编译好的二进制包,解压直接使用即可

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

安装二进制mysql5.7http://blog.csdn.net/wb96a1007/article/details/51559741

三、安装gunicorn

pip install gunicorn

在项目目录EdmureBlog下新建gunicorn的配置文件gunicorn.conf.py

[root@localhost EdmureBlog]# pwd
/EdmureBlog

[root@localhost EdmureBlog]# ls
backend  db.sqlite3   gunicorn.conf.py    manage.py   nginx.conf   repository    static     utils
blogss   debug.log   EdmureBlog            gunicorn.error.log  Monaco.ttf  __pycache__  singleton.py  templates  web

gunicorn.conf.py

  1. import multiprocessing
  2.  
  3. bind = "127.0.0.1:8080"
  4. workers = 2 #workers是工作线程数,一般设置成:服务器CPU个数 + 1
  5. errorlog = '/EdmureBlog/gunicorn.error.log'
  6. #accesslog = './gunicorn.access.log'
  7. #loglevel = 'debug'
  8. proc_name = 'gunicorn_blog_project'

四、在EdmureBlog下新建nginx的配置文件dj.conf ,将其链接到/app/nginx/conf/extra下      ln -s /EdmureBlog/dj.conf   /app/nginx/conf/extra/dj.conf

/EdmureBlog/dj.conf

  1. server {
  2. listen 8000;
  3. server_name www.wt.com; #访问django项目的网站
  4. access_log /EdmureBlog/logss/nginx.access.log;#访问日志
  5. error_log //EdmureBlog/logss//nginx.error.log;#错误日志
  6.  
  7. location / {
  8. proxy_pass http://127.0.0.1:8080;#动态请求交给gunicorn,8080端口就是gunicorn用的端口
  9. proxy_set_header Host $host;
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. }
  13.  
  14. location /robots.txt {
  15. alias /EdmureBlog/logss/static/robots.txt;
  16. }
  17.  
  18. location /favicon.ico {
  19. alias /EdmureBlog/logss/static/img/favicon.ico;
  20. }
  21.  
  22. location ~ ^/(media|static)/ { # 注意这个static,如果项目中静态文件的存放目录是 /项目/statics,那么这里也要写成media|statics,然后在html文件中引用css和js的时候,路径也要写成/statics/css/...
  23. root /EdmureBlog/; #静态文件存放路径
  24. expires 30d;
  25. }
  26.  
  27. # this prevents hidden files (beginning with a period) from being served
  28. location ~ /\. {
  29. access_log off; log_not_found off; deny all;
  30. }
  31.  
  32. }

nginx主配置文件/app/nginx/conf/nginx.conf

  1. user root;
  2. worker_processes 1;
  3.  
  4. #error_log logs/error.log;
  5. #error_log logs/error.log notice;
  6. #error_log logs/error.log info;
  7.  
  8. #pid logs/nginx.pid;
  9.  
  10. events {
  11. worker_connections 1024;
  12. }
  13. http {
  14. include mime.types;
  15. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  16. '$status $body_bytes_sent "$http_referer" '
  17. '"$http_user_agent" "$http_x_forwarded_for"';
  18. include extra/dj.conf; #django站点
  19. include extra/www.conf; # 其他站点
  20. include extra/bbs.conf; #其他站点
  21. include extra/status.conf;
  22. default_type application/octet-stream;
  23. sendfile on;
  24. keepalive_timeout 65;
  25.  
  26. }

五、同时,django项目的站点名(www.wt.com)加入到 settings.py的ALLOWED_HOSTS里。

ALLOWED_HOSTS = ['www.wt.com',]

如果要外部访问,则打开8000端口:

/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT

service iptatbles save

六、运行gunicorn:

[root@localhost EdmureBlog]# pwd
/EdmureBlog

[root@localhost EdmureBlog]# nohup   /usr/local/bin/gunicorn   EdmureBlog.wsgi:application   -c   /EdmureBlog/gunicorn.conf.py  &

七、启动nginx

/app/nginx/sbin/nginx -t 检查配置语法是否正确

/app/nginx/sbin/nginx   启动nginx服务

八、关闭防火墙,没有dns的话,Windows修改hosts文件,浏览器访问www.wt.com即可

在nginx上部署django项目--------Gunicorn+Django+nginx+mysql的更多相关文章

  1. 在nginx上部署vue项目(history模式);

    在nginx上部署vue项目(history模式): vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载.但是如果我们不想has ...

  2. 在nginx上部署vue项目(history模式)--demo实列;

    在很早之前,我写了一篇 关于 在nginx上部署vue项目(history模式) 但是讲的都是理论,所以今天做个demo来实战下.有必要让大家更好的理解,我发现搜索这类似的问题还是挺多的,因此在写一篇 ...

  3. centos上部署flask项目之环境配置-MySQL的安装

    1.添加mysql 的yum源 wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'    rpm ...

  4. 在Nginx上部署ThinkPHP,解决Pathinfo问题

    在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支 ...

  5. Django项目和Django初体验和创建、目录结构认识

    .MVC的设计方式(跟Flask一样,都是MVC的设计模式) .开发效率高 .功能强大(丰富的第三方组件) .安全性高(帮助开发者规避安全漏洞) 目前市面上使用:Django>Flask #使用 ...

  6. nginx上部署python web

    nginx上部署python web http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html

  7. Nginx上部署HTTPS

    Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev,且ln -s /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/, ...

  8. 在Linux上部署Web项目

    You believe it or not there is a feeling, lifetime all not lost to time. 在Linux上部署Web项目 这个是普通的web项目, ...

  9. Nginx上部署HTTPS + HTTP2

    Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so ...

随机推荐

  1. 以太坊系列之四: 使用atomic来避免lock

    使用atomic来避免lock 在程序中为了互斥,难免要用锁,有些时候可以通过使用atomic来避免锁, 从而更高效. 下面给出一个以太坊中的例子,就是MsgPipeRW,从名字Pipe可以看出, 他 ...

  2. Kylin存储和查询的分片问题

    本文来自网易云社区 作者:汪胜 相关概念介绍 为了了解Kylin存储和查询的分片问题,需要先介绍两个重要概念:segment和cuboid.相信大数据行业的相关同学都不陌生.Kylin每次提交一个新的 ...

  3. 用C语言构建一个可执行程序的流程

    1.流程图 从用C语言写源代码,然后经过编译器.连接器到最终可执行程序的流程图大致如下图所示. 2.编译流程 首先,我们先用C语言把源代码写好,然后交给C语言编译器.C语言编译器内部分为前端和后端. ...

  4. Linux解压工具

    指令 yum  install lrzsz

  5. oracle查询分区表中的数据

    select * from TABLE_NAME partition(分区名) T WHERE T.COL_NAME= 'XX';

  6. HDU6318-2018ACM暑假多校联合训练2-1010-Swaps and Inversions-树状数组

    本题题意是,给你一个长度为n的序列,使用最少的操作把序列转换为从小到大的顺序,并输出操作数*min(x,y) 实质上是算出该序列中有多少逆序对,有归并排序和树状数组两种算法,由于数据之间的差值有点大, ...

  7. Laravel-安装composer

    一.系统环境   Laravel框架有些系统上的要求,因此需要保证自己运行环境.要求的环境有:对于PHP的版本要求比较法高,其他的是扩展,可以在php.ini文件中开启 PHP >= 5.5.9 ...

  8. 【guava】字符串操作

    一,Strings类 public void testStrings(){ Strings.isNullOrEmpty("");//返回true Strings.nullToEmp ...

  9. Nagios监控平台搭建及配置文件详解

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员, ...

  10. 通用动态树(Link-Cut Tree)模板

    一个没有维护任何东西的动态树模板 忘了怎么写可以直接来粘 int ch[300010][2], fa[300010], st[300010]; bool lazy[300010]; bool nroo ...