​ – react+flask

​ --nginx+virtualenvwrapper+uwsgi+supervisor

文章目录

  • ububtu
  • Linux
  • Mysql sever
    • 1. 安装服务端
    • 2. 连接数据库
    • 3. 修改密码
    • 4.导出数据库(备份数据库)
    • 3.导入数据库(导入sql文件)
    • 4.删除、卸载数据库
  • nginx
    • 1. 安装配置环境
    • 2. 安装nginx
    • 3. 配置文件
    • 4. 常用命令
    • 4. 卸载apt-get安装的nginx
  • Flask
    • 安装 flask
    • 虚拟环境 virtualenvwrapper
    • Web服务器 uWSGI
    • 进程管理 supervisor
  • SSL配置

ububtu

  • 使用root时登入不进去时,使用ubuntu
  • 查看防火墙状态:
sudo ufw status
  • 端口控制

打开端口:

sudo ufw allow 80/tcp

禁用 80 端口:

sudo ufw delete allow 80/tcp

允许某特定 IP:

sudo ufw allow from 192.168.254.254

删除上面的规则:

sudo ufw delete allow from 192.168.254.254
  • 参考文档:https://www.cnblogs.com/jiangyao/archive/2010/05/19/1738909.html

Linux

  1. 进入管理员权限
sudo su
  1. 常用命令
cd / # 回到根目录/
cd ~    # 回到根目录~
cd ..   # 返回上一级
mkdir   # 新建文件夹
ll     (或ls -al(或ls))   # 显示
rm -f 路径或文件名    # 删除文件
rm -rf 路径或文件夹名  # 删除文件夹
tar xzvf 文件名    # 解压
find / name x.text   # 查找文件
sudo netstat -tap | grep 程序名    # 查看程序的进程
  1. 文档编辑器操作
i   # 进入编辑
esc按键   # 退出编辑
x   # 保存不退出
:qw # 保存后退出
:q! # 不保存退出ctrl+F # 向后翻页

Mysql sever

1. 安装服务端

sudo apt-get install mysql-server

在这一步过程中会有提示创建root密码,记得记住密码!(如果没出现先跳下面设置下密码)

(如果没有异常不用尝试以下步骤)

①检测有没有安装成功(进程查询)

sudo netstat -tap | grep mysql

如果出现mysql 的socket处于 listen 状态则表示安装成功

②安装客户端

sudo apt-get install mysql-client

③安装程序编译时链接的库

sudo apt-get install libmysqlclient-dev

2. 连接数据库

mysql -u root -p

3. 修改密码

用管理员模式进到Mysql

# 仅限旧版本
SET PASSWORD FOR root@localhost = '********';
# 新版本
alter user 'root'@'localhost' identified with mysql_native_password by '********';
#刷新
flush privileges;

4.导出数据库(备份数据库)

  • 数据库的数据位于 /var/lib/mysql

    直接使用命令:

mysqldump -u root -p abc >abc.sql

然后回车输入密码就可以了;

mysqldump -u 数据库链接用户名 -p 目标数据库 > 存储的文件名

文件会导出到当前目录下

  • 迁移数据库https://www.cnblogs.com/sky-cheng/p/12195461.html(未使用过)

3.导入数据库(导入sql文件)

①首先建空数据库

create database abc;

②导入数据库

方法一:
①选择数据库

use abc;

​ ②设置数据库编码

set names utf8;`

​ ③导入数据(注意sql文件的路径)

source /home/temp/abcd.sql;

方法二:
mysql -u用户名 -p 数据库名 < 数据库名.sql

mysql -u root -p abc < abc.sql

4.删除、卸载数据库

  • 删除
DROP DATABASE test_db_del;
  • 卸载
  1. 删除MySQL服务器:
sudo apt-get remove mysql-server
  1. 删除随MySQL服务器自动安装的任何其他软件:
sudo apt-get autoremove
  1. 查看从MySQL APT存储库安装的软件包列表:
dpkg -l | grep mysql | grep ii
  1. 卸载这些:
sudo apt-get remove

nginx

1. 安装配置环境

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
sudo apt update

2. 安装nginx

apt install nginx

3. 配置文件

位于 vi /etc/nginx/nginx.conf


user  root;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name xxx.com www.xxx.com ;       return 301 https://xxx.cn$request_uri;}server {listen       443;server_name www.xxx.com;ssl on;ssl_certificate /etc/nginx/ssl/server.crt;ssl_certificate_key /etc/nginx/ssl/server.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;  location / {root   /home/web/build;index  index.html index.htm;}    location /api/ {proxy_pass http://127.0.0.1:5000;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

4. 常用命令

# 启动
service nginx start
# 关闭
nginx -s stop
# 重载
nginx -s reload
  • nginx文件安装完成之后的文件位置:

    • /usr/sbin/nginx:主程序

    • /etc/nginx:存放配置文件

    • /usr/share/nginx:存放静态文件

    • /var/log/nginx:存放日志

4. 卸载apt-get安装的nginx

彻底卸载nginx

apt-get --purge autoremove nginx

查看nginx的版本号

nginx -v

参考文档:https://blog.csdn.net/qq_23832313/article/details/83578836

Flask

安装 flask

在文件夹中导入写好的.py文件(记住路径)

进入此文件夹后

pip install flask
# 安装数据库的库
pip install flask-sqlalchemy
  • python3:要连接mysql数据库,仍需要安装pymysql
pip install pymysql
  • python2:要连接mysql数据库,仍需要安装flask-mysqldb
pip install flask-mysqldb

Python3.4以上版本不需要额外安装virtualenv安装包了,直接使用python -m venv env1即可创建虚拟环境

虚拟环境 virtualenvwrapper

  1. 安装virtualenvwrapper
pip install virtualenvwrapper
  1. 配置

①用 cd ~ 进入此文件

②vi .bashrc

# 配置虚拟环境(在文档最后添加即可)
export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

③刷新

source ~/.bashrc

创建虚拟环境

mkvirtualenv --python=/usr/bin/python3 项目名称_env

⑤查看(可不做)

cd ~
cd .virtualenvs

⑥运行

workon 项目名称_env

Web服务器 uWSGI

  1. 安装uwsgi
pip install uwsgi
  • 如果未能安装 按python版本安装相关依赖
sudo apt-get install libpython3.8-dev

参考文档: https://blog.birost.com/a?ID=01700-22afe1ba-b206-4378-8ef4-c1fd7eef566e

  1. 配置uwsgi

先在后端文件夹里

touch uwsgi.ini

打开 vi uwsgi.ini

[uwsgi]# 项目的路径
chdir           = /home/ubuntu/server/
# Flask的uwsgi文件
wsgi-file       = /home/ubuntu/server/init.py
# 回调的app对象
callable        = app
# Python虚拟环境的路径
home            = /root/.virtualenvs/xxx_env# 进程相关的设置
# 主进程
master          = true
# 最大数量的工作进程
processes       = 10http            = :5000 # 监听5000端口(或监听socket文件,与nginx配合)# socket          = /srv/[项目名称]/[项目名称].sock# 设置socket的权限
# chmod-socket    = 666
# 退出的时候是否清理环境
vacuum          = true
  1. 运行 uwsgi
uwsgi --ini uwsgi.ini
uwsgi --ini  /home/ubuntu/server/uwsgi.ini
# 临时
@app.route('/api/auth/confirmation/',methods=['POST'])
def confirmation():token = request.get_json()['token']# -----------------
getReply = () => {axios.get("/blog/message/topiclist").then(response => {if(response.status === 200){this.setState({messagesData: response.data,})}})}

进程管理 supervisor

  1. 安装supervisor
sudo apt-get install supervisor
  1. 环境配置
# 在/etc/supervisor/supervisord.conf 下添加以下两行配置
[program:luffy_city]
command=/root/.virtualenvs/xxx_env/bin/uwsgi  /home/ubuntu/server/uwsgi.ini
  • supervisord.conf配置文件参数解释
supervisord.conf配置文件参数解释
[program:xx]是被管理的进程配置参数,xx是进程的名称
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run  ; 程序启动命令
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3       ; 启动失败自动重试次数,默认是3
user=tomcat          ; 用哪个用户启动进程,默认是root
priority=999         ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程
  1. 卸载
sudo apt purge supervisor

SSL配置

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.crt

ubuntu 20.4下服务器部署相关推荐

  1. Ubuntu 20.04 下 部署 SoftEther

    SoftEther 简介 SoftEther VPN 是 SoftEther VPN Project 提供的下一代 VPN 通信软件的最新版本,具有稳定性.灵活性和可扩展性. SoftEther VP ...

  2. Ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明(均可运行)

    ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明 ubuntu 20.04 下Fabric运行及配置说明 注:本文是对 <hyperledger/fabr ...

  3. linux :YOLO5配置(ubuntu 20.04 下安装运行yolov5)

    ubuntu 20.04 下安装运行yolov5 新建文件夹,安装python 安装 python-pip: 克隆YOLOv5Git code 配置YOLO环境 安装yolov5: ubuntu 20 ...

  4. ubuntu 20.04 下安装使用clash for windows

    ubuntu 20.04 下安装使用clash for windows (最简单版本) - jjjzzzqqq - 博客园

  5. 如何安装Ubuntu 20.04 LTS服务器的图文教程

    今天,我们将通过图文向您展示如何安装Ubuntu 20.04 LTS服务器.如果您的系统上已经有Ubuntu 18.04 LTS服务器,则只需将其升级到Ubuntu 20.04 LTS服务器.如果您不 ...

  6. 乌班图服务器账号密码忘了,如何在Ubuntu 20.04 LTS服务器中重置Sudo密码

    本文简单介绍了如何在Ubuntu 20.04 LTS服务器版中重置sudo密码.第一次安装Ubuntu时,会创建一个新的sudo用户来执行各种管理任务.如果您有多个sudo用户,您可以从另一个sudo ...

  7. ccpd文件名转成xml_在Deepin V20/Ubuntu 20.04下安装佳能LBP2900+打印机的方法

    本文为你介绍在Deepin V20系统下安装佳能LBP2900+打印机的方法,同样的方法也适用在Ubuntu 20.04下,但在Ubuntu下需要安装canberra-gtk-module. 在Dee ...

  8. 在Ubuntu 20.04下安装 ROOT cern

    在Ubuntu 20.04下安装 ROOT cern Step1 安装必要库 Step2 安装ROOT本身 方法1:下载预编译软件包安装(Bianary Distributions) 方法2:CMAK ...

  9. WSL Ubuntu 20.04下Android源码编译与导入Android Studio

    源码下载见前文:WSL Ubuntu 20.04下Android源码下载 idegen 模块编译 在development/tools/idegen/README下可以看到关于 idegen 工具的相 ...

最新文章

  1. 刻意练习:LeetCode实战 -- 二叉树的前序遍历
  2. mats显卡测试软件的使用教程,MATS使用说明
  3. axure变成一个小手了_Axure原型:超漂亮的系统首页
  4. 机器学习实战学习笔记 一 k-近邻算法
  5. 鸟类南飞,去的是哪个“南方”?
  6. 已完成私有化交易 “网红第一股”如涵退市
  7. sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id
  8. 编码的奥秘之发报机与继电器
  9. 区块链 solidity 零知识证明DApp开发实践【身份证明/以太坊】
  10. 新浪微博开放平台开发步骤简介(适合新手看)
  11. 2022苹果AppStore应用商店上传与APP上传流程必看(基础篇)
  12. 使用FlashPaper在线转换.doc为.swf
  13. 2021年全国压岁钱排行榜,大数据告诉你哪的红包最大?
  14. js复制富文本/网页内容到黏贴板
  15. 《数据解构》HashMap源码解读
  16. MIT6.824-lab2A-2022篇(万字推导思路及代码构建)
  17. 网站优化(seo)基础篇之网站关键词
  18. 自动驾驶软件开发人才现状_新技术改变传统出行方式 多国自动驾驶行业现状及人才需求分析...
  19. 敏捷与数字化转型银行_使敏捷人超越数字化
  20. String类常用方法思维导图总结

热门文章

  1. PCIe系列第三讲、事务层通用 TLP 头结构分析
  2. Jabber 技 术 概 况
  3. 【KMP】OKR-Periods of Words
  4. 计算机操作系统—信号
  5. 了解人脸识别和二维码识别
  6. Java 8 实战教学大纲
  7. golang gopher-lua 遍历table元素
  8. 【蓝桥杯嵌入式主板G4】第五章 利用Delay函数来实现LED的闪烁
  9. C# CultureInfo列表详细说明
  10. python中的init_python中init什么意思