阿里云ECS服务器部署django的方法

参考

服务器安装的是Centos 系统。

uwsgi是使用pip安装的。

nginx是使用yum install nginx安装。

python 2.7, mysql 5.5使用 yum安装。

它们之间的逻辑关系如下:

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uswgi负责从Django拿内容,通过socket传给 web server如nginx, 最后显示到 网页浏览器。

在django的项目下,建文件 uswgi.ini,可以不用在uswgi后面写一串选项。

# uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir   = /var/www/html/
# Django's wsgi file
module   = app.wsgi:application
# process-related settings
# master
master   = true
# maximum number of worker processes
processes  = 10
# the socket (use the full path to be safe
#socket   = 127.0.0.1:8001
socket = /tmp/site.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit
vacuum   = true
process = 4
threads = 2

# Django's wsgi file这个对应你自己Django项目的就好。 chdir就是Django的所在目录,和manage.py同一目录。

其他可以默认。

同样建立nginx.conf

# nginx.conf

# the upstream component nginx needs to connect to
upstream django {
 server unix:///tmp/site.sock; # for a file socket
 #server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
 # the port your site will be served on
 listen  80;
 # the domain name it will serve for
 server_name demo.mmm.com; # substitute your machine's IP address or FQDN
 charset  utf-8;

 # max upload size
 client_max_body_size 128M; # adjust to taste

 # Django media
 location /media {
  alias /var/www/html/media; # your Django project's media files - amend as required
 }

 location /static {
  alias /var/www/html/static; # your Django project's static files - amend as required
 }

 # Finally, send all non-media requests to the Django server.
 location / {
  uwsgi_pass django;
  include  /var/www/html/uwsgi_params; # the uwsgi_params file you installed
 }
}

uwsgi_pass django; 中的django和upstream django 相对应。

两头的socket名字要一样。uwsgi里要改sock的权限为666,默认的664,nginx会连不上,在/var/log/nginx/error.log里可以看到connect is denied。

据说使用socket比端口要好,注意unix://这个前缀,加上后面sock的路径,是3个///,看起来不好看。

无论使用socket还是TCP端口,uwsgi的socket和nginx的server值要对应,否则没法接通路径。

server_name demo.mmm.com; 看文章时,把server_name这个词看成域名,给修改掉,结果nginx启动失败。可以用域名或者IP。

ln -s /var/www/html/nginx.conf /etc/nginx/conf.d/

链接后,这样在conf.d 配置目录里会有Django下建立的nginx.conf,比较方便。

uwsgi_params文件在/etc/nginx下面有,老外说是拷贝到Django目录下,不知道直接使用会有什么区别。

最后:

使用chkconfig nginx on 把nginx设置成自启动服务。

在/etc/rc.local里加一行 uwsgi /var/www/html/uwsgi.ini --uid www --gid www

我没加uid和gid,以root运行uwsgi会被警告的。

原来是打算用apache的,所以有个/var/www/html目录。mod-python报错后,不知道怎么处理。

系统自带Python2.6,mod-python就是调用的2.6。

nginx不能从uwsgi获得数据时,就会输出nginx的默认页面。还会输出 Bad Gateway提示。

linux最大的麻烦是,程序和配置文件分散,装好一个程序,都不知道它在哪里。

以上这篇阿里云ECS服务器部署django的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于腾讯云服务器部署微信小程序后台服务(Python+Django)

    一 前言 微信小程序,相信大家早已熟知,它是一种无需下载安装即可使用的轻型应用,具有跨平台和接近 Native App 性能体验的优势.从开发模式上说,它是前后端分离的,微信小程序负责实现前端应用,后端服务可以使用任何你说熟知的开发语言,如 PHP . NodeJs . Java . C# . Python 等,因而,微信小程序的开发文档主要是围绕 WXML . WXSS 等前端框架.组件或样式布局进行讲解,几乎看不到后端技术的身影.本文主要介绍如何在腾讯云服务器上部署 Python+Djang

  • 将Django项目部署到CentOs服务器中

    首先,把项目上传到虚拟机中. scp -r C:\Users\Administrator\Desktop\fresh root@192.168.218.128:/home/fresh/ 在虚拟环境中运行,确保uwsgi安装好. pip install uwsgi 验证: 浏览器正常访问ip+端口,能正常访问,说明安装好了. settings文件的修改: 将HOST改为本机地址. python manage.py collectstatic 收集admin静态文件 修改uwsgi.ini 在项目文

  • Linux下将Python的Django项目部署到Apache服务器

    这几天花了点时间,将把django开发好的web项目部署到Apache上,参考了官方的一些文档和互联网上的文档,还是花了比较多的时间,这里把配置的过程说一下. 方便有需要的朋友,可以参考,少走弯路! 1. django项目部署环境说明 操作系统 : Red Hat Enterprise Linux Server release 5.3 (Tikanga) x86_64 apache版本 : httpd-2.2.3-22.el5 mod_wsgi版本 : mod_wsgi-3.2-1.el5 fe

  • 在主机商的共享服务器上部署Django站点的方法

    许多共享主机的服务提供商不允许运行你自己的服务进程,也不允许修改 httpd.conf 文件. 尽管如此,仍然有可能通过Web服务器产生的子进程来运行Django. 记录 如果你要使用服务器的子进程,你没有必要自己去启动FastCGI服务器. Apache会自动产生一些子进程,产生的数量按照需求和配置会有所不同. 在你的Web根目录下,将下面的内容增加到 .htaccess 文件中: AddHandler fastcgi-script .fcgi RewriteEngine On Rewrite

  • django 配置阿里云OSS存储media文件的例子

    1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: (python3_sbs) F:\projects\virtualenv\python3_sbs\Scripts>pip install django-aliyun-oss2-storage Collecting django-aliyun-oss2-storage Using cached dj

  • 阿里云ECS服务器部署django的方法

    参考 服务器安装的是Centos 系统. uwsgi是使用pip安装的. nginx是使用yum install nginx安装. python 2.7, mysql 5.5使用 yum安装. 它们之间的逻辑关系如下: the web client <-> the web server <-> the socket <-> uwsgi <-> Django uswgi负责从Django拿内容,通过socket传给 web server如nginx, 最后显示

  • 阿里云ecs服务器 修改php上传最大限制的方法

    找到PHP.ini位置,可以通过phpinfo()查看 编辑php vi /etc/php.ini 修改 ①upload_max_filesize 默认2m ②memory_limit  默认128m ③post_max_size 默认8m 修改保存后重启php-fpm和nginx /etc/init.d/php-fpm start /etc/init.d/php-fpm stop /etc/init.d/php-fpm restart /etc/init.d/php-fpm reload se

  • 阿里云ecs服务器中安装部署node.js的步骤

    首先下载了putty用来连接服务器的控制台,还有flashFXP用来上传文件.下面是详细的步骤,一起来看看. 1.下载node.js 下载地址:node.js 千万不要用命令行下载,太慢. 下载完成后上传至服务器. 2.解压 进入到node.js安装包的目录,然后输入命令: tar zxf node-latest.tar.gz 3.编译 进入解压后的文件夹 输入命令: ./configure 多等一会 再输入命令: make 4.安装 命令: make install 再等一会. 结束后,输入

  • 阿里云ECS服务器入门使用流程(新手必看教程)

    一.阿里云根据个人需要选合适的云服务器,选好cpu.内存.带宽,地域,这四个是主要的.其他可以默认选择. 二.登陆控制台 输入账号密码,进去看到服务界面,新手可能不容易看懂.点击左侧菜单,点击云服务器,显示界面如图: 点击实例,在左上角选择区域(一定要选对地域才能看到服务器),这时看到服务器信息了,如图: 大家不要看这里这么多信息,对我们有用的其实只有几个而已,别的都不用看. 更多参阅云服务器配置帮助文档. 三.连接主机 1.通过控制台连接 阿里云服务器要用到两个密码,一个是远程登录密码,一个是

  • Python3编程实现获取阿里云ECS实例及监控的方法

    本文实例讲述了Python3编程实现获取阿里云ECS实例及监控的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python3.5 # -*- coding:utf8 -*- try: import httplib except ImportError: import http.client as httplib import sys,datetime import urllib import urllib.request import urllib.error impor

  • 解决阿里云ECS服务器下安装MySQL无法远程连接的问题

    场景重现 在阿里云ECS下,Ubuntu系统上通过以下命令安装的MySQL数据库,本地连接正常, 但远程死活连接不上. # 安装MySQL apt-get install mysql-server 解决办法 主要有以下几点: 用户root默认受限为本地可访问(localhost), 远程拒绝(出于安全考虑吧)但是这个我们可以修改的, 在本地用root登录后, 修改对应的表字段值即可. 这里需要注意的是MySQL安装完成后, 自带了一个mysql数据库, 里面有个user表, 就是存放此类信息的.

  • 搭建阿里云ecs服务器之安装图形化界面的方法

    完成远程连接以后就可以安装图形化界面,不过也要看你的服务器配置,配置低了会比较卡 在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后,发现系统是这样的: 安装步骤: 先使用阿里云或者putty远程连接上服务器以后再执行以下操作 输入以下代码 更新软件库 apt-get update 升级软件 apt-get upgrade 安装ubuntu桌面系统 apt-get install ubuntu-desktop 重启服务器 reboot

  • 阿里云ECS部署Docker服务的实现步骤

    目录 1.前言 2.内核支持 2.1.升级内核 3.Docker安装 3.1.关闭selinux 3.2.安装epel 3.3.yum安装docker-io 3.4.启动docker 3.5.查看docker版本 3.6.开启启动docker 4.docker命令的使用 5.创建容器并登入 6.参考资料 1.前言 京东2016年618大促,全部应用系统和大部分的DB服务都跑在Docker上.据官方估计,本次大促活动中,京东线上将会启动近15万个Docker容器,从数量上来看,京东是全球范围内Do

  • 阿里云ECS实例设置用户root密码和远程连接的方法

    阿里云服务器购买之后,新的实例需要设置root登录密码之后才能正常操作,不然就登录不了.重置实例登录密码的时候,适用于在新创建时未设置密码或者忘记密码的情况.对于正在运行的实例,需要在重置实例登录密码之后重启实例才能使新的密码生效,但是注意重启操作对业务的影响.        一.重置root登录密码的操作步骤 按以下步骤在控制台上修改一台或多台实例的登录密码: 1.登录ECS管理控制台. 2.在左侧导航栏中,单击"实例". 3.选择地域. 4.根据需要修改密码的实例数量,执行不同的操

  • 阿里云ECS云服务器如何开放8080端口

    阿里云服务器ECS处于安全考虑默认自带安全组(仅开放了22号和3389号端口),Tomcat的默认端口号为8080,所以想使用Tomcat不开放8080端口是不行的.很多用户通过修改iptables来开放8080号端口,结果失败,这是由于安全组,对安全组,阿里云亘古不变的安全组开放端口问题.废话少说,云服务器吧来说说阿里云服务器ECS如何开放8080端口吧! 注意:阿里云服务器开放端口首先要配置安全组,如果您开启了服务器内部防火墙,您还需要修改iptables,关于配置安全组的方法官网文档中有教

随机推荐