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




目录
相关文章
|
2月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
92 0
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
45 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
100 1
|
2月前
|
存储 NoSQL Linux
centos7部署redis以及多实例
centos7部署redis以及多实例
60 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
15 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
10 0
|
3天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
10 0
|
11天前
|
JavaScript Linux 数据安全/隐私保护
如何在CentOS7部署Wiki.js知识库并实现分享好友公网远程使用【内网穿透】
如何在CentOS7部署Wiki.js知识库并实现分享好友公网远程使用【内网穿透】
|
17天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
32 0
|
17天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
17 0

热门文章

最新文章