1. 安装依赖包

yum -y groupinstall "Development tools"

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

  1. 安装python

个人习惯安装软件至/usr/local/目录

cd /usr/local/

wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz

解压

tar -zxvf Python-3.10.4.tgz

进入文件夹

cd Python-3.10.4

编译安装到指定路径

./configure --prefix=/usr/local/python3

安装

make && make insall

建立软连接

ln -fs /usr/local/python3/bin/python3.10 /usr/bin/python3

ln -fs /usr/local/python3/bin/pip3.10 /usr/bin/pip3

  1. 安装虚拟环境

pip3 install virtualenv

建立软连接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的

mkdir -p /data/env

mkdir -p /data/wwwroot

启动虚拟环境

cd /data/env/pyweb/bin

source activate

  1. 安装django

pip3 install django (如果用于生产的话,则需要指定安装和你项目相同的版本)

进入项目根目录

cd /data/wwwroot/mysite

测试是否正常启动 python3 manage.py runserver

  1. 安装uwsgi

pip3 install uwsgi

留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。

建立软连接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

配置uwsgi

XML格式的配置文件

/data/wwwroot/mysite/,在项目根目录下创建

mysite.xml文件,输入如下内容:

<uwsgi>
<socket>127.0.0.1:8080</socket> <!-- 内部端口,自定义 -->
<chdir>/data/wwwroot/mysite/</chdir> <!-- 项目路径 -->
<module>mysite.wsgi</module> <!-- mysite为wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

保存

注意里的mysite,为wsgi.py所在的目录名。

这种方式的配置,可以用下面的命令启动.

启动uwsgl

uwsgi -x mysite.xml

uwsgi有没有启动成功,可以用下面的命令查看

ps -ef|grep uwsgi

如果想重启uwsgi,先使用下面的命令杀掉进程,再启动uwsgi

killall -9 uwsgi

注意uwsgi转发的不支持http浏览,需要配置nginx才能访问。

  1. 安装nginx

进入/usr/local/

cd /usr/local/

下载压缩包

wget http://nginx.org/download/nginx-1.21.6.tar.gz

解压缩

tar -zxvf nginx-1.21.6.tar.gz

进入解压后的文件夹执行命令

./configure

make && make install

进入nginx安装目录

cd /usr/local/nginx

修改nginx.conf

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 8888;
server_name www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:8888
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径 }
location /static/ {
root /data/wwwroot/mysite/; #静态资源路径 此处为Django中配置的static的静态文件路径去掉static
}
}
}

启动ngnix

cd /usr/local/nginx/sbin/

执行启动指令

./nginx

  1. 配置防火墙

    启动防火墙 systemctl start firewalld.service

    开启端口firewall-cmd --zone=public --add-port=8080/tcp --permanent

    firewall-cmd --zone=public --add-port=8888/tcp --permanent

    开放http服务

    firewall-cmd --add-service=http --permanent

    重启防火墙生效

    firewall-cmd --reload

  2. 配置阿里云安全组规则

完成后,即可通过外网ip加8888端口号访问服务了!!

参考链接

阿里云CentOS7 下部属nginx+uwsgi+python3+django的更多相关文章

  1. centos7 下通过nginx+uwsgi部署django应用

    1. 安装python3.6 1. 获取 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz tar -xzvf Python- ...

  2. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  3. 阿里云centos7搭建php+nginx环境

    阿里云Centos搭建lnmp(php7.1+nginx+mysql5.7) https://jingyan.baidu.com/article/215817f7a10bfb1eda14238b.ht ...

  4. centos7下部署Django(nginx+uwsgi+python3+django)

    系统版本 centos7 python版本 使用官方python3.6.3正式版 django版本 使用本文发布时最新的1.11.7 uwsgi版本 使用本文发布时最新的2.0.15 nginx版本 ...

  5. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器

    部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...

  6. 阿里云 centOS7.4新装nginx 不能访问

    反复装了几遍ngxin,什么防火墙,nginx.conf改了好几次都不能访问外网的ip, 原因是阿里云这货新的服务器根本就没开通443,80端口,真是坑人啊 点击配置规则,增加端口就行了 添加安全规则 ...

  7. centos7下采用Nginx+uwsgi来部署django

    之前写过采用Apache和mod_wsgi部署django,因为项目需要,并且想比较一下Nginx和Apache的性能,尝试采用Nginx+uwsgi的模式来部署django. 1.安装uwsgi以及 ...

  8. 阿里云Centos下安装nginx之后外网无法访问

    centos 7.4 nginx1-14.0编译安装 curl 127.0.0.1 可以请求到 index.html curl local 可以请求到 index.html http://ip/ 无法 ...

  9. 阿里云centos7[linux]安装nginx

    标题 说明 服务器版本 Centos7 x64 nginx版本 1.19.6 作者 walton 一.准备 创建安装包目录并进入 mkdir /usr/dev/nginx cd /usr/dev/ng ...

  10. 阿里云centos下安装nginx、jdk、tomcat、绑定域名、解析域名

    1.ESC后安全设置(管理控制台->本实例安全组->配置规则->添加安全组规则->3306.80端口配置) 2.nginx  安装,首先安装三大件  PCRE.zlib.ope ...

随机推荐

  1. 问题记录之---nginx temp文件夹

    问题说明: 服务从外网访问服务公众号前端调用后端接口时候会偶然出现网络异常情况(并非每次都会出现),此问题只是偶发性得,问题现象如下图: 查看nginx错误日志有以下内容:open() "/ ...

  2. 92、kkfile打印当前页

    使用kkfile预览pdf时,有肯能需要打印其中的某一张.如果pdf中有几百张,那么打印加载就会很慢.打印当前页就不会出现这个问题. 这个是我编译后的,有需要的请联系QQ: 1842988062

  3. mysql 创建表 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' 默认值失败

    set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREAT ...

  4. MongoDB 用户及权限增删

    本文主要是MongoDB4.X的操作 一.MongoDB用户创建   MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问. 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限 ...

  5. feign的工作原理

    1.开发微服务时,我们会在微服务的主程序入口添加EnableFignClient注解开启对Feign Client扫描加载处理,根据FignClient接口规范,定义接口并加上FignClient注解 ...

  6. Rancher v2.4.8 容器管理平台-集群搭建(基于k8s)

    整体概要 1.准备VMware+Ubuntu(ubuntu-20.04-live-server-amd64.iso)三台,一主两从(master,node1,node2) 2.在三台服务器上安装 do ...

  7. 关于npm和yarn的坑

    遇到下载出错的情况,这两个两个双管齐下

  8. Python面向对象编程——一些类定义(杂)

    一.abstractmethod 子类必须全部实现重写父类的abstractmethod方法 非abstractmethod方法可以不实现重写 带abstractmethod方法的类不能实例化 fro ...

  9. 作业三:CART回归树

    作业三:CART回归树 20大数据三班 博客链接 学号 201613336 问题一: 表1为拖欠贷款人员训练样本数据集,使用CART算法基于该表数据构造决策树模型,并使用表2中测试样本集确定剪枝后的最 ...

  10. 百度地图api高亮显示指定区域,其余遮罩

    先放一张最后的效果图 主要功能:只显示天府新区(双流区+龙泉驿区)这一块,其他的地方就用半透明的遮罩层盖住,然后用Markers标注出每个项目的所在地点,当鼠标悬浮在标注点的时候就显示出项目名称. h ...