在centos7下从零搭建nginx+uwsgi+django(代码片段)

shouwangrenjian shouwangrenjian     2022-12-12     502

关键词:

一、安装Python3
  在centos7中系统自带Python2.7,需要自己安装Python3
  1、安装依赖

sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make 

  2、安装wget

sudo yum install wget

  3、获取python

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz

  4、解压、编译

tar -xf Python-3.7.3.tar.xz # 解压
./configure prefix=/usr/local/python3 # 配置安装目录
make # 编译
make install # 安装

5、添加软连接

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

 

二、安装Django

sudo pip3 install django
sudo ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin # 建立软连接

  由于pymysql无法在django2.2上使用,也不是完全没办法,但django推荐使用mysqlclient,参考https://docs.djangoproject.com/zh-hans/2.2/ref/databases/#mysql-notes

  安装mysqlclient

sudo yum install mysql-devel
sudo pip3 install mysqlclient

 

 

三、安装MySQL
  1、确认系统是否装有mysql

rpm -qa | grep mysql

  如果装有:

rpm -e mysql  // 普通删除模式
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

  2、下载yum资源包

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

  3、使用yum安装mysql

sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-community-server
chown mysql:mysql -R /var/lib/mysql # 修改mysql权限
sudo mysqld --initialize # 初始化
systemctl start mysqld # 启动mysql服务
grep temporary password /var/log/mysqld.log # 查看临时密码
mysql -uroot -p # 使用临时密码登录

  4、修改密码
    由于默认安装有validate_password,因此密码要求:至少包含1个数字字符,1个小写字符,1个大写字符和1个特殊(非字母数字)字符,长度不小于8位;

ALTER USER ‘root’@localhost IDENTIFIED BY new_password;

    如果希望使用简单的密码,可以修改validate_password的策略,validate_password.policy,有LOW,MEDIUM,STRONG三种等级,默认为MEDIUM;
    参考:https://dev.mysql.com/doc/refman/8.0/en/validate-password.html

SET GLOBAL validate_password.policy=0; # 修改为LOW,但是要求长度不小于8位
SET GLOBAL validate_password.length=4; # 修改长度

 


四、安装uWSGI
  1、安装uWSGI

pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi # 建立软连接

  2、启动
    a、使用命令行启动
      1.进入项目目录
      2.

uwsgi --http 192.168.57.129:8000 --file mysite/wsgi.py --static-map=/static=static
--http 
--file
--processes 选项添加更多的进程
--threads 选项添加更多的线程
--master 一个master进程 (在Inc死掉的时候会生成它们),后面没有参数
--stats 127.0.0.1:9191 允许将uWSGI的内部统计数据作为JSON导出

    b、使用配置文件启动
      1.建立yourfile.ini文件

[uwsgi]
#http = 0.0.0.0:3031 # 当只使用uWSGI时,使用http,配合nginx,使用socket与nginx建立连接
chdir = /root/mysite/
module = mysite.wsgi:application
wsgi-file = myproject/wsgi.py
socket = /root/mysite/script/uwsgi.sock
pidfile = /root/mysite/script/uwsgi.pid
uid = root
gid = root
master = true
processes = 4
threads = 2
stats = 127.0.0.1:9191
static-map=/static=static

      2.启动

uwsgi --ini youfile.ini

 

 

五、安装nginx
  参考官方文档:https://nginx.org/en/linux_packages.html#RHEL-CentOS
  1、Install the prerequisites:

sudo yum install yum-utils

  2、To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

  -3、不是必须,如果不装标准版的nginx才需要注意。By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:

sudo yum-config-manager --enable nginx-mainline

  4、To install nginx, run the following command:

sudo yum install nginx  # When prompted to accept the GPG key, verify that the fingerprint matches 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62, and if so, accept it.

  5、配置,在/etc/nginx/conf.d/建立配置文件my.conf,这只是一个简单配置

server 
  listen 80;
  server_name 192.168.57.129;
  charset utf-8;
  #access_log logs/host.access.log main;
  location / 
    include uwsgi_params;
    uwsgi_pass unix:/root/mysite/script/uwsgi.sock;
    uwsgi_connect_timeout 30;
  
  #静态文件,nginx自己处理,不去uWSGI请求
  location /static/ 
    alias /root/mysite/static/;
    index index.html index.htm;
  
  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  6、注意/etc/nginx/nginx.conf中的user,默认为nginx,需要改为主机用户
  7、启动nginx

sudo nginx -c /etc/nginx/nginx.conf # 启动
sudo nginx -s quit 或者 sudo nginx -s stop # 停止

 

  如果uwsgi_params文件缺失,自己添加,注意路径要与配置文件中对应,默认应该在nginx目录下有uwsgi_params文件。

uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;

uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;

uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

 

win10下从零搭建linux+ansible+k8s学习环境笔记(1*master/controller+3*node)(代码片段)

写在前面一直想学K8s,但是没有环境,本身K8s就有些重。上学之前租了一个阿里云的ESC,单核2G的,单机版K8s的勉强可以装上去,多节点没法搞,书里的Demo也没法学。需要多个节点,涉及到多机器操作&... 查看详情

win10下从零搭建linux+ansible+k8s学习环境笔记(1*master/controller+3*node)(代码片段)

写在前面一直想学K8s,但是没有环境,本身K8s就有些重。上学之前租了一个阿里云的ESC,单核2G的,单机版K8s的勉强可以装上去,多节点没法搞,书里的Demo也没法学。因为需要多个节点,因为涉及到多... 查看详情

python+宝塔nginx+uwsgi的搭建方法(代码片段)

...字.conf,去除相关配置,如上图画卷去掉,否则无法正常搭建静态资源,上面是加载缓存因为,我们是使用宝塔的nginx功能跟绑定 查看详情

nginx+uwsgi+flask搭建后怎么访问.py文件

参考技术A一、介绍最近开发要用一个测试环境,是这样的Nginx+uwsgi+flask的一个结构。下面是一些记录,在Centos系统上使用Flask架构部署一个简单的Python应用。然后使用Nginx作为前端反向代理,设置uWSGI应用网关处理web应用程序。二... 查看详情

网站搭建从零开始在centos7中使用docker搭建cf和jira

参考技术A自行百度source/etc/profile第一种方式:mkdir-p/etc/dockertee/etc/docker/daemon.json<<-'EOF'systemctldaemon-reloadsystemctlrestartdocker第二种方式:curl-sSLhttps://get.daocloud.io/daotools/set_mirror.sh|sh-shttp://f1361db2.m.daocloud.iodig@114.114.114.114regi... 查看详情

在阿里云centos7.6中部署nginx1.16+uwsgi2.0.18+django2.0.4(代码片段)

 当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个密码是远程链接密码,也就是通过浏览器连接服务器的密码,另外一个是实例密码,这个密码就是ecs的root密码,一般情况下,我们经常用到的是实例密码... 查看详情

django部署——uwsgi+nginx(超详细)

参考技术A环境:python3.6centos7Django1.11用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!从哪儿开始?就从Django开始吧!老规矩,按步骤:这里不讲Django项目实施过程... 查看详情

centos7部署django项目(代码片段)

uwsgiPython环境搭建【略】uwsgi模块的安装:pip3installuwsgiuwsgi配置文件编写:uwsgi配置文件格式可以是xml也可以是ini文件,这里使用ini文件在django项目的根目录新建一个uwsgi.ini文件,写入以下内容[uwsgi]http=:8000#绑定端口chdir=/home/trunk/#... 查看详情

centos7从零开始安装nginx+php(代码片段)

了解概念nginxfastcgiphp-fpm的关系梳理-talk_is_cheap-博客园CGI(CommonGatewayInterface)CGI全称是“公共网关接口”(CommonGatewayInterface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具https://www.cnblogs.com/smallrookie/p 查看详情

线上项目部署(代码片段)

...sir部署博客地址孙铭浩博客地址  孙铭浩踩过的坑centos7下部署django项目 我们项目部署需要用到uwsgi,它可以开启多进程,启动多个uwsgi实例,然后让nginx来做静态文件处理,以及负载均衡和反向代理.启动多个uwsgi通过nginx做... 查看详情

centos7搭建自己的yum源

  http://www.wenbin.cf/post/37/1.安装nginx,createrepoyuminstallnginx-yyuminstallcreaterepo-y  2.修改nginx配置文件,/etc/nginx/nginx.conflocation/{autoindexon;} 重启nginx,systemctlrestartnginx 3.在n 查看详情

在 Uwsgi 和 Nginx 上使用 SocketIO 烧瓶

】在Uwsgi和Nginx上使用SocketIO烧瓶【英文标题】:FlaskwithSocketIOonUwsgiandNginx【发布时间】:2017-11-1605:05:13【问题描述】:我正在开发使用WebSockets与前端通信的Flask应用程序。它托管在nginx后面的AmazonEC2上,由uwsgi提供服务。这是我用... 查看详情

linux从零搭建hadoop集群(centos7+hadoop3.2.0+jdk1.8+mapreduce完全分布式集群案例)(代码片段)

Linux从零搭建Hadoop集群(CentOS7+hadoop3.2.0+JDK1.8+Mapreduce完全分布式集群案例)关键字和相关配置版本关键字:LinuxCentOSHadoopJava版本:CentOS7Hadoop3.2.0JDK1.8基本主从思路:先把基础的设置在一台虚拟机(master) 查看详情

uwsgi--unavailablemodifierrequested:0--的解决办法(代码片段)

出现问题的环境:Centos7,nginx和uwsgi都是用yum安装的nginx报错upstreamprematurelyclosedconnectionwhilereadingresponseheaderfromupstream说明是上游服务器出现了问题所以是uwsgi出现问题uwsgi报错uwsgi--unavailablemodifierrequested:0解决办法yumsearchvi 查看详情

通过 Nginx 的 uwsgi + django - uwsgi 设置/生成?

】通过Nginx的uwsgi+django-uwsgi设置/生成?【英文标题】:uwsgi+djangoviaNginx-uwsgisettings/spawn?【发布时间】:2011-03-1217:21:12【问题描述】:我的Django应用程序倾向于使用uwsgi+nginx,任何人都可以分享启动我的uwsgi进程的最佳方法吗?有没... 查看详情

centos7下搭建django

安装环境:centos7.41安装nginx  yuminstallnginx  注:尝试过在本地和腾讯云上安装,使用同一条命令:在本地安装提示没有可用安装包,云上安装正常  启动nginx,并启用开机启动  systemctlstartnginx.service&nbs... 查看详情

centos下实现flask+virtualenv+uwsgi+nginx部署(代码片段)

一、项目简介  在本文中,将一步一步搭建一个简单的Flask+Virtualenv+uWSGI+Nginx架构的Web服务,可以作为新手的学习也可作为记录备忘。  如果你安装好了环境并有一定基础可以直接从第五节开始部署。  项目中只是演示了... 查看详情

uwsgi服务启动(start)停止(stop)重新装载(reload)

1.添加uwsgi相关文件在之前的文章跟讲到过centos中搭建nginx+uwsgi+flask运行环境,本节就基于那一次的配置进行说明。在www中创建uwsgi文件夹,用来存放uwsgi相关文件在uwsgi文件夹中创建uwsgi.pid和uwsgi.status文件,uwsgi.pid文件用来重启和... 查看详情