阿里云centos部署Django+nginx+uwsgi服务,安装mezzanine为例

简介: 阿里云centos部署Django+nginx+uwsgi服务,安装mezzanine。阿里云新机python web部署。
阿里云新购机器必须将实例加入安全组,否则外网是不能访问实例的。创建安全组后需要进行入网规则设置,也就是通过80端口,443端口等访问内网。

部署Django+Nginx+uwsgi

ssh登录远程服务器,如果觉得实例名太长了可以改hostname。hostname yourname 然后su

1、yum update 更新yum

这是可选项。


2、 yum install nginx

安装nginx前,安装gcc-c++,openssl,*prce*, zlib*

安装完之后whereis nginx查看一下安装位置。默认安装在/etc/nginx下

nginx默认监听80端口,访问服务器外网ip如果能出现如下界面说明安装并启动成功。

如果不能,则需要进行下面操作:

/usr/sbin/nginx -c /etc/nginx/nginx.conf   #指定nginx配置文件,如果不指定,会启动失败

/usr/sbin/nginx -s reload  #这条命令不管nginx之前是否启动成功都将重启

再打开看应该就会出现上面的画面了。

设置开机自动启动:vi /etc/init.d/nginx 内容是:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/

然后进行权限修改:chmod a+x /etc/init.d/nginx,

使用chkconfig进行管理:

chkconfig --add /etc/init.d/nginx

chkconfig nginx on

可使用service nginx start 和 service nginx stop进行启动和关闭。

3、安装python

安装python之前先把数据库sqlite安装好,否则在安装mezzanine的时候数据库创建不了。

安装数据库,yum install sqlite-devel (目前已经更新到sqlite3版本了)

安装完后使用sqlite3 --version查看版本号。

wget https://www.python.org/ftp/python/3.6.5/ python版本,我下的是Python-3.6.5.tgz

安装python3, 系统默认安装了python2.7。下载完成后进行一下操作

解压 tar -zxvf Python-3.6.5.tgz 
配置环境 ./configure --prefix=/usr/local/python3
安装 make & make install
进行软链 ln -s /usr/local/python3/bin/python /usr/bin/python

同时python3会安装pip的最新版本,ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

注意:如果升级了python3,yum会出问题,因为yum是使用python做解析器的

vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可

真实环境中安装uwsgi
pip install uwsgi

4、安装虚拟环境

(1)pip install virtualenv

(2)安装完之后软链一下ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

然后执行virtualenv env35(虚拟环境名,自己随意取),软链的目的就是为了让virtualenv这个命令能简化执行,不软连的话可以执行/usr/local/python3/bin/virtualenv env35

(3)进入虚拟环境source env35/bin/activate

(4)退出虚拟环境deactivate


5、在虚拟环境下安装Django和mezzanine

(1)pip install mezzanine(mezzanine需要Django,所以直接安装mezzanine即可,Django会被自动安装上。)

(2)创建mezzanine项目:mezzanine-project libpath

(3)创建数据库 , python manage.py createdb,设置密码:xxxx

(4)收集静态文件,python manage.py collectstatic

(5)配置setting, vi libpath/settings.py,找到allow_host 添加外网ip

(6)测试是否安装成功,python manage.py runserver 0.0.0.0:8000(阿里服务器实例添加到安全组,并添加规则允许8000端口被外网访问)

如果能出现下面的画面则安装成功。


6、安装协议模块

(1)虚拟环境中安装uwsgi, pip install uwsgi

安装后进行测试uwsgi --http :8000 --module libpath.wsgi


7、配置文件

最主要的三个文件:

nginx.conf

error_log /etc/nginx/logs/error.log;
pid       /etc/nginx/logs/nginx.pid;

events {
    worker_connections  4096;
}

http{
	# nginx需要连接的上游
	upstream django {
    		#server unix:///path/to/your/mysite/mysite.sock; # 使用unix套接字
   		 server 127.0.0.1:8001; # 使用TCP端口请注释上一行,并取消本行注释,这里的端口指的是跑uwsgi的端口
	}

	include		/etc/nginx/mime.types;


	# nginx服务器配置
	server {
	    # 监听端口
	    listen      80;
	    # 域名
    	    server_name .yoursite.com;
	    # 编码
	    charset     utf-8;

	    # 最大上传大小
	    client_max_body_size 75M;   

	    # Django 的media路径
	    location /media  {
	        alias /app/librepath/media;  
	    }

	    # 静态文件路径
	    location /static {
	        alias /app/librepath/static;
	    }

	    # 将动态请求转发到uwsgi跑的django程序
	    location / {
	        uwsgi_pass  django;
	        include     /app/uwsgi_params; # 从github上下载的uwsgi_params 文件路径
	    }
	}	
}

uwsgi_params (nginx安装目录下就有现成的):mv /etc/nginx/uwsgi_params /app/uwsgi_params

uwsgi.ini

创建webapp用户和组,如果不使用uid =webapp,默认使用root,会提示多行您使用root的警告。

groupadd webapp

useradd -g webapp webapp

[uwsgi]
uid     =webapp
gid     =webapp

chdir   =/app/librepath
module  =librepath.wsgi
home    =/app/env35
master  =true
processes       =10

socket  = :8001
chmod-socket    = 666
vacuum          =true
enable-threads  =true
thunder-lock    =true

文中使用的是socket端口通信,也可使用socket文件进行通信。

设置nginx自启或者 /usr/sbin/nginx -c /etc/nginx/nginx.conf,/usr/sbin/nginx -s reload

启动uwsgi /usr/local/python/bin/uwsgi --ini /app/uwsgi.ini




目录
相关文章
|
10月前
|
Ubuntu 网络协议 应用服务中间件
在 Ubuntu 上安装 Nginx
在 Ubuntu 上安装和配置 Nginx 非常简单。首先更新系统包,然后通过 `apt` 安装 Nginx,检查服务状态并配置防火墙规则。访问服务器 IP 测试是否成功显示默认页面。还可管理服务、创建虚拟主机及排查常见问题,适合新手快速上手部署高性能 Web 服务。
1250 0
|
10月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
919 20
|
前端开发 应用服务中间件 nginx
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
1302 25
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
676 5
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
13102 1
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
2131 0
Mac os 安装 nginx 教程(success)
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
Ubuntu Unix 应用服务中间件
详细拆分如何在ubuntu 上使用 nginx + uwsgi socket方式部署 Django 项目
详细拆分如何在ubuntu 上使用 nginx + uwsgi socket方式部署 Django 项目
431 0