阿里云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




目录
相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
61 5
|
6天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
23天前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
应用服务中间件 Apache 开发工具
nginx服务企业应用
nginx服务企业应用
|
1月前
|
应用服务中间件 网络安全 nginx
nginx作为web服务以及nginx.conf详解
nginx作为web服务以及nginx.conf详解
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
157 1
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
6天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
7天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
30天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
68 1
Linux系统之Centos7安装cockpit图形管理界面