uwsgi + nginx + ubuntu + flask 部署ip代理池

步骤

事先准备好你的项目代码

    1. 先安装python,和创建虚拟环境
    1. 安装 nginx,redis mysql,以及你项目组所需要的相关组件 等
    1. 配置uwsgi,nginx文件

项目代码 https://github.com/HHHyuming/proxy_pool
项目目录如下

proxy_pool/
├── Api
│ ├── init.py
│ ├── proxyApi.py 代理池API(Flask应用)
├── Cli
│ ├── init.py
│ ├── proxyPool.py 代理池启动文件 启动schedule以及flask (这里用uwsgi启动flask)
│ ├── proxy_schedule.log
│ └── proxy_server.log
.。。。。。。 省略
└── uwsgi.ini ################################### 重点

安装python3.7 以及虚拟环境

  • $ apt install update
  • $ apt install upgrade
  • 然后安装下面的依赖
    在这里插入图片描述
安装python3.7

先去下载源码包
我放在 /opt 下面
1.下载

  • $ cd /opt
  • $ wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
  • 解压
  • $ tar -zxvf Python-3.7.5.tgz
因为ubuntu16.04 自带python2.7 与python3.5

$ whereis python3 查看python3 引用python3.5的位置
在这里插入图片描述我们需要使用python3.7,只需要把/usr/bin 中的python3 引用从python3.5换成python3.7就行了

  • $ cd /usr/bin
  • $ rm python3*
    接着开始安装python3.7
    $ cd Python-3.7.5 进入刚才解压python3.7的目录
    2.配置
  • $ ./configure --prefix=/usr/local/python3.7 将python3.7安装到这个目录下
    3.编译
  • $ make
    4.安装
  • $ make install
    这时候如果没报错就安装成功了 一定记得前面的依赖要装上不然等会pip3 安装可能会报没有_ctypes 这个模块的错误
    5.将python3.7 加入到环境变量中
  • $ cd /root
  • $ vim .bashrc
    这里的/usr/local/python3.7 就是刚刚安装python指定的安装位置
  • export PATH=$PATH:/usr/local/python3.7/bin
  • $ source .bashrc
  • $ python3 可以看到成功了
    在这里插入图片描述
安装虚拟环境

输入 pip 此时显示的是Python2的 我们不用管我们使用的是pip3

  • $ pip3
    在这里插入图片描述
  • $ pip3 install virtualenv
  • $ pip3 install virtualenvwrapper
    此时虚拟环境安装完了,我们需要进行配置
  • $ cd /root 或者 cd ~ 切换到家目录
  • vim .bashrc
    添加一下代码,请根据自己的目录位置进行调整

export WORKON_HOME=$HOME/.virtualenvs
创建的虚拟环境 放到./vritualenvs 目录中
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3.7.5/bin/python3
指定创建时的python版本 这里是python3
source /usr/local/python3.7.5/bin/virtualenvwrapper.sh
这条命令之后才可以mkvirtualenv

  • $ mkvirtualenv proxy_pool_env 创建虚拟环境
  • $ workon proxy_pool_env 进入虚拟环境

到这里python3以及虚拟环境以及安装配置完了

我们开始安装项目所需要的mysql 以及redis

  • $ apt install redis-server
  • $ apt install mysql-server
  • $ apt install mysql-client

首先我们开始配置uwsgi

这里给两个链接可以看看uwsgi具体配置详解
https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/ # 官方文档已经写得很好了
https://blog.csdn.net/t8116189520/article/details/88388801
https://blog.csdn.net/wyfcode/article/details/86258232

  • $ cd proxy_pool 进入项目根目录
  • $ workon proxy_pool_env
  • $ pip install -r requirements.txt 安装项目需要的依赖包
  • $ pip install uwsgi

配置uwsgi

  • $ vim proxy_uwsgi.ini 把下面的复制进去
    这是本项目中的uwsgi配置文件
    在这里插入图片描述

这是一个标准配置的模板,并非本项目uwsgi配置文件
[uwsgi]
# http=127.0.0.1:8005 如果你的项目不需要使用nginx 那么就使用http接受请求
# 这里使用nginx 所以使用socket不用http字段 使nginx和uwsgi进行通信
socket=:8005 # 会在0.0.0.0:8005 启动uwsgi 服务
# 项目目录 如果没配置好 可能启动的时候会出现导包错误
chdir=/www/cheese/python
# 指定启动的文件
wsgi-file=/www/cheese/python/manager.py
# 这个就是flask的实例对象
callable = app
# 要启动的进程个数
processes=4
# 线程数量
threads=2
# 会用一个master进程
master=True
# 记录pid 的文件夹,可以进入这个文件夹查看运行uwsgi的pid
pidfile=uwsgi.pid
# 启动后台运行 并且记录uwsgi的日志 
daemonize=uwsgi.log
status=/www/cheese/uwsgi.status

项目虚拟环境 ********本项目部署没使用以下配置
# home=env
# virtualenv=/www/cheese/env
# plugins=python
  • $ uwsgi proxy_uwsgi.ini 启动uwsgi
这个时候只是启动了uwsgi,还不能进行访问还需进行nginx配置 (如果你配置文件用的是http字段参数就可以小测一下,到时候配置nginx的时候你要把http换成socket字段)

nginx配置

1.安装

  • $ apt install nginx
    OK 搞定
    此时可以看到nginx的页面
    在这里插入图片描述
  • $ cd /etc/nginx
  • $ cat nginx.conf 我们可以看到nginx还会从这两个目录下加载配置文件
    在这里插入图片描述
我们选第一个在/etc/nginx/conf.d/ 在下面创建一个 proxy_pool.conf 的配置文件

将这两个文件复制到conf.d目录下

  • $ cp /etc/nginx/uwsgi_params /etc/nginx/conf.d
  • $ cp /etc/nginx/proxy_params /etc/nginx/conf.d
    创建配置文件
  • $ cd /etc/nginx/conf.d
  • $ vim proxy_pool.conf
    将以下内容复制
server{
        listen 8004;  # nginx将会监听8004端口的请求
        server_name 39.106.217.14;  # 这是你公网的ip地址
        location / {  #这是根目录
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8005;  # 这是你启动uwsgi服务的地址  nginx将会把收到的请求转发给uwsgi处理
        }

}

  • $ service nginx restart 重启一下nginx
    如果访问失败的试试 到服务器 curl http://127.0.0.1:8004/get/ 如果成功则说明你的uwsgi配置没问题 ,可能是你的端口没开放,本人用的是阿里的服务器,需要到安全组把这个端口打开
    在这里插入图片描述

开放端口阿里云服务器

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191207151647663.png
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值