【超详细】阿里云服务器超级详细配置(FLASK+UWSGI+NGINX)by LY 2020-4-21

 阿里云服务器超级详细配置(FLASK+UWSGI+NGINX)


一准备工作:

我们先到阿里云官网注册和登录以及实名认证,然后可以在官网上购买收费的云服务器或者领取一个月免费的云服务器。

官网:https://www.aliyun.com/

阿里云:https://free.aliyun.com/

我们这次安装的是Ubuntu  18.04 64位  阿里云目前最新版的系统。


输入root密码  记住哦~这个就是登录服务器的密码

服务器地址,第一个( ̄▽ ̄)"复制一下~

配置安全组,主要设置容许你的网页访问的端口。。。go on~

端口范围和授权对象必须要写哦,0.0.0.0/0就是对所有人公开~

OK,下面我们进入我们的服务器,当然如果你的不是阿里云的服务器也可以,你的服务器装好系统之后可以从这一步开始:

putty

下载putty,SSH啥的 你自己随意,我觉得这个顺手一点吧。黑色的地方填写服务器地址 其他不变。然后OPEN!

二、进入ubunru终端界面并创建虚拟环境:

    输入密码进来之后:

    第一个命令,更新服务器列表   O(∩_∩)O

    1.apt-get update     

    2.这个mysql需要就装。 

        如果你用的sqlite,这个可以不装,以后需要再装也行,但是还是要说一下:

      apt-get install mysql-server

      apt-get install libmysqlclient-dev     

      装完之后可以用命令查看安装的包和软件:

      dpkg -s mysql-server


也可以检查别的包

    3.如果你安装了mysql,就顺便把redis也安装一下。

        redis是什么,后面有说明的,想了解的可以去看看。

        apt-get install redis-server      redis的安装(缓存数据库)

    4.  安装 virtualenv  (虚拟环境):

        如果这里提示要安装 PIP 就  安装一下  pip  

        apt install python-pip

        再安装 :

         pip install virtualenv

       pip3 install virtualenvwrapper (虚拟环境管理工具) (如果是python3  切换下)

      至此虚拟环境就安装好了 O(∩_∩)O 

      恭喜你完成了很多人要爬很多坑的一步。

-----------------------------------------这里应该有分割线---------------------------------------------

       接下来我们看下 virtualenvwrapper.sh 的位置,为什么要看呢,因为我们的服务器怕找不到虚拟环境所需要的文件,  

         使用命令 :which  virtualenvwrapper.sh   然后添加以下代码

        编辑~/.bashrc文件,内容如下: (vim~/.bashrc   修改文件用  i 命令,改完之后esc退出编辑模式 ,输入:wq 保存退出

设置环境变量

            (每一个用户在进入home目录后,其中都会有一个隐藏文件.bashrc ,按ctrl+h可以显示隐藏文件,该文件保存该用户角色下的环境变量,所以直接打开终端时,运行的命令都是从 这 个.bashrc中去寻找)。

在  .bashrc 文件中修改 :

export WORKON_HOME=$HOME/.virtualenvs/ 

export PROJECT_HOME=$HOME/workspace/ 

exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh


用的3.5版本安装的这个环境,系统的2.7版本是没有的。

“exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3”

就是告诉服务器设置在python3的环境变量下

如果不指定python3的位置:

which python3

然后修改“ = ” 号后面的。

退出VIM后千万一定要加上这条命令,马上执行:

source ~/.bashrc

后面如果报错,那就是虚拟环境环境出问题了:

可以   whichvirtualenvwrapper.sh 

然后修改下:

“source /usr/local/bin/virtualenvwrapper.sh”的路径。

理论上跟我的一步一步走 是不会错的。这里要小伙伴们好好理解一下。

OK 虚拟环境已经配置好了,

现在便是创建虚拟环境。

我们创建一个py3_flask的虚拟环境:

mkvirtualenv -p python3 py3_flask

查看刚刚创建的虚拟环境:

workon

进入虚拟环境:

workon py3_flask

这个时候 会有变化哦,是不是root前面已经有(py3_flask)了,代表我们已经进入这个虚拟环境了

(py3_flask) root@*******:

使用 pip list就可以查看当前虚拟环境安装了哪些包了。

附上虚拟环境常用命令:

mkvirtualenv env1:创建运行环境 env1

workon env1: 工作在 env1 环境 或 从其它环境切换到 env1 环境

deactivate: 退出终端环境

其它的:

rmvirtualenv ENV:删除运行环境ENV

mkproject mic:创建mic项目和运行环境mic

mktmpenv:创建临时运行环境

lsvirtualenv: 列出可用的运行环境

lssitepackages: 列出当前环境安装了的包

创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。

三、安装uwsgi:

升级下我们的 pip   (如果提示 PIP 需要升级  可以这样:pip3 install --upgrade pip  升级PIP)

进入到虚拟环境安装:uwsgi

workon py3_flask  进入:

uwsgi 的安装:

 pip3 uwsgi

如果觉得慢可以选择安装源,比如这样:

pip3 install -i https://pypi.douban.com/simple uwsgi

使用的 豆瓣的安装源  速度会快很多哦。

OK,安装好了 uwsgi 那么下一步就要安装 FLASK。

四、安装FLASK

一样的安装方法:

pip3  install  flask  

OK下面 我们用Flask 来测试下我们的网页:

用  vim 工具 修改下 app.py的一些小参数

如果你用 pycharm的话,应该指定创建Flask后会有一个 自动生成的app.py

我们就来测试它,复制那段代码,用vim创建一个test.py的文件。

(不测试,就可以跳过这段,完全不影响)

最后的app()修改如下:

app(host='0.0.0.0',port=5000 , debug='True')


是不是很熟悉

然后保存退出  vim ,好了第一次运行我们的网站:

python3  app.py

浏览器打开 输入:

你的网址:5000

不要忘记加端口哦。

是不是看到网页了。

五、安装  nginx:

nginx的安装:

sudo apt-get install nginx

下载ngnix  也是在虚拟环境。

很快就安装好了。

如果出问题了,?@!

那好吧,升级下  sudo apt-get updata

在安装就可以了。

安装好了之后就是最重要的配置了。

六、配置uwsgi和nginx:

如果需要拷入你的项目文件到服务器:

一般推荐使用工具,比如【winscp】,把项目文件放好,一般放在HOME目录。

说一下配置文件的位置:

nginx的在etc文件夹下的nginx文件夹里:

uwsgi的 需要自己创建ini文件 放在虚拟目录就可以了,位置随便。

运行ini文件的时候要在创建的目录。

(复制下来后,注意去掉用 # 注释的部分)

---------------------------------------------------------------------------------------------

[uwsgi]

chmod-socket = 666               

socket  =127.0.0.1:5000        #和nginx配置的端口号

#http=0.0.0.0:5000            #单独启动uwsgi时使用

chdir=/home/51job/51_flask    #项目路径

wsgi-file=app.py               #项目启动文件

home = /root/.virtualenvs/py3_flask/   #这个是项目的虚拟路径

callable=app                

processes=4                

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

-------------------------------------------

如果只想测试下  uwsgi  是否成功,

那么改成这样:

[uwsgi]

#chmod-socket = 666

#socket  =127.0.0.1:5000

http=0.0.0.0:5000

chdir=/home/51job/51_flask            #你的项目目录

wsgi-file=app.py                       #你的启动文件 

home = /root/.virtualenvs/py3_flask/    #这就是你的虚拟目录,还记的开始的时候说的怎么得到虚拟目录吗?

callable=app

processes=4

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

就可以了在uwsgi上访问了,注意浏览器的端口:5000哦

OK,下面就是ngnix的配置,so  easy!!!

哎 说简单 其实我可是趴了俩天的坑啊 -,-

events {

        worker_connections 768;

        # multi_accept on;

}

http {

server {

                                listen          80;                #监听端口,就是网站端口啦

                                server_name     XXX.XXX.XXX.XXX    #你的服务器地址,也可以是你的域名

                                charset         utf-8;

                                location /static {

                                                        alias   /home/51job/51_flask/static;

                                                            #这个是你项目的JS文件地址,是不是很熟悉static

                                }

                                #location /upload {

                                      #alias   /var/www/datavis/taihesite/upload;

                                #}

                                location / {

                                     uwsgi_pass   127.0.0.1:5000;#这个是与你对接的uwsg的地址端口

                                      include      /etc/nginx/uwsgi_params;

                                }

}

        ##

        # Basic Settings

        ##

复制下面这段代码到相应位置就可以了,注意覆盖哦,需要修改的地方 我都做了标记了,如果复制下来 请把注释去掉哦



七、启动我们的 服务器:

uwsgi uwsgi.ini

service nginx start

这样就启动了。。。

顺便说下停止服务器的方法:

sudo pkill -f uwsgi -9  停止uwsgi  最有效的办法  都不需要输入pid 去 KILL

service nginx stop      停止 nginx

那就一其说一下吧:

service nginx restart    重启Nginx服务

service nginx status    Nginx服务的状态

service nginx reload在Nginx服务启动的状态下,重新加载nginx.conf这个配置文件

sudo nginx -t        检查nginx 配置是否正确

至此终于完成了所有的配置 ,你的服务器应该已经可以访问了,假如,还不能启动,那肯定都是小问题,无非就是版本不匹配啥的,

如果出问题不妨试一下:

 sudo atp-get update

如果喜欢的小伙伴可以转载一下:)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容