2024部署经验

一、深刻教训
1、svelte或vue中axios访问后端使用的URL地址:
最后的斜杠(/)要加,否则nginx配置中rewrite会不起作用

 

    // const  baseURL  =  'http://47.97.19.34:9001/';  重点:最后的斜杠(/)要加
    // const  baseURL  =  'https://xiaoyan.mobi/backend/';  重点:最后的斜杠(/)要加
    const  baseURL  =  'http://47.115.208.135/backend/';

 

 

2、ng安装

先拷贝文件到三个目录:/opt/ng/conf、/opt/ng/log、/opt/ng/html

然后运行下面docker命令:
docker run -itd -e TZ="Asia/Shanghai" --restart=always \
--log-opt max-size=10m --log-opt max-file=3 \
--network host \
--name ng \
-v /opt/ng/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/ng/conf/conf.d:/etc/nginx/conf.d \
-v /opt/ng/log:/var/log/nginx \
-v /opt/ng/html:/usr/share/nginx/html \
-d nginx:1.23.3

 


3、web
fastapi_dockerfile.sh 文件内容:

FROM tiangolo/uvicorn-gunicorn:python3.8

WORKDIR /code

COPY /code/requirements.txt /code/requirements.txt
RUN python -m pip install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple/
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple/

RUN pip uninstall -y urllib3
RUN pip uninstall -y chardet
RUN pip install --upgrade requests -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple/

COPY /code /code

CMD ["sh"]

操作过程:

1、fastapi_dockerfile.sh文件放在 /opt/web 目录下
2、在bash终端内: cd /opt/web
3、执行生成镜像命令:
docker build -f fastapi_dockerfile.sh -t fastapi.sam.3.80 .
4、查看镜像: docker images

运行docker:

先拷贝python代码到目录:/opt/web/code
然后运行docker命令:
  docker run -itd -e TZ="Asia/Shanghai" --restart=always \
  --log-opt max-size=1m --log-opt max-file=3 \
  --network host \
  --name web \
  -v /opt/web/code:/code -v /opt/web/logs:/code/logs \
  fastapi.sam.3.80 /bin/bash -c "uvicorn main:app --reload --host 0.0.0.0 --port 9001 --workers 3"

  fastapi3.8 /bin/bash -c "uvicorn main:app --host 0.0.0.0 --port 9001 --workers 3"
  --reload参数决定代码修改自动重启和多进程,main.py对应代码:uvicorn.run(app='main:app', host='0.0.0.0', port=9001, workers=3)

 

 



二、运维常用命令

Portainer是一个轻量级的、开源的容器管理和编排工具,它提供了一个易于使用的图形用户界面(GUI),用于管理和操作Docker和Kubernetes环境。
docker ps
docker ps -a
docker logs -f pgpool

端口占用查看/监听查看
    netstat -tunlp
    ss -tnl

web访问测试
    curl http://localhost
    curl http://localhost:9001/test
    curl -k -v -i https://localhost/backend/test
    curl -k -v https://localhost:9443/backend/test/pgread

ip地址查看
    ip addr
cpu、内存、硬盘查看
    top
    free -m
    df -h

处理nginx log文件:
    cd /opt/ng/log
    echo "" > nginx_access.log
删除目录
    cd /opt
    rm -rf web
修改/etc/hosts文件后,执行生效命令
    /etc/init.d/network restart

数据库常用操作
    docker exec -it web /bin/bash
    docker exec -it pg /bin/bash
    docker exec -it ng /bin/bash
    docker exec -it pdix /bin/bash
    docker exec -it rs /bin/bash
    redis-cli -a Emixx8089 -h 172.16.227.236 -p 7617 info
    docker exec -it rc /bin/bash
    redis-cli -a Emixx8089 -p 7617 info
查看容器日志最后100条内容
    docker logs --tail=100 web
    
查看容器目录
    ll /var/lib/docker/containers
查看容器详情,可看到容器ID
    docker inspect uvicorn
查看容器中日志文件大小,下例为pg-0中uvicorn
    ll /var/lib/docker/containers/1dd4c4a2c67d2bbf13b0605edd17452a1aa62e35d1952def15f6999a004bc61d

生成公钥位于:/root/.ssh/id_rsa.pub
    ssh-keygen -t rsa -P ''
部署到远端主机,就可以免密码访问远端主机
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.160.160
传送文件:
    scp /opt/pg/data/dump20030212.sql root@172.16.160.160:/opt/pg/data

 

 


三、pg数据库

1、登陆

A、进入pg docker命令行界面:
  docker exec -it pg /bin/bash
  退出bash:exit
B、进入到pg数据库管理命令行界面(psql是pg的命令行数据库管理软件):
  psql -U postgres
  psql -h 172.16.93.160  -p 5432 -U postgres -W
  退出数据库:\q

bash下数据库常用操作:
转到映射目录:
    cd /bitnami/postgresql
执行bash命令备份数据库ttlock:
    pg_dump -U postgres -d lock -f dump0206.sql
    pg_dumpall -U postgres > db_all.sql
将备份文件dump20230206.sql拷贝到在容器外映射目录:/opt/pg
转到容器内映射目录:cd /bitnami/postgresql
将备份写入数据库,在bash命令界面:
    psql -d ttlock -U postgres -f dump0206.sql
    psql -d lock -U postgres -f ttlock20230520.sql

 

2、数据库内常用操作命令

    postgres-# h            数据操作帮助
    postgres-# ?            常用命令帮助
    postgres=# \l           列出数据库
    postgres=# \du          列出用户
    postgres-# CREATE USER xiaoyan WITH PASSWORD 'Emixx8089';  新建用户
    postgres=# \q           从psql命令状态返回bash命令状态
    postgres=# \c ttlock    切换到ttlock数据库
    postgres=# \d           查看当前schema中所有的表

使用提供的命令  psql  -h  172.16.93.160  -p  5432  -U  postgres  -W  登录到  PostgreSQL  数据库后,你将进入  psql  命令行界面,可以执行多种数据库操作命令。以下是一些常用的数据库操作命令:

查看数据库列表:
\l
或者使用  SQL  命令:
SELECT  datname  FROM  pg_database;
选择数据库:
\c  [database_name]
或者使用  SQL  命令:
SELECT  pg_switch_db('database_name');
查看表列表:
\d
或者使用  SQL  命令:
SELECT  table_name  FROM  information_schema.tables  WHERE  table_schema  =  'public';
查看表结构:
\d  [table_name]
创建数据库:
CREATE  DATABASE  [database_name];
创建表:
CREATE  TABLE  [table_name]  ([column_definitions]);
插入数据:
INSERT  INTO  [table_name]  ([column1],  [column2],  ...)  VALUES  ([value1],  [value2],  ...);
查询数据:
SELECT  *  FROM  [table_name];
更新数据:
UPDATE  [table_name]  SET  [column1]  =  [value1],  [column2]  =  [value2],  ...  WHERE  [condition];
删除数据:
DELETE  FROM  [table_name]  WHERE  [condition];
删除表:
DROP  TABLE  [table_name];
删除数据库:
DROP  DATABASE  [database_name];
退出  psql:
\q
查看当前用户:
\user
查看当前数据库:
\database
查看服务器版本:
\version
帮助命令:
\?
这些命令在  psql  命令行界面中通常以反斜杠  \  开头,这些是  psql  的元命令。而  SQL  命令则是标准的  SQL  语句,用于与  PostgreSQL  数据库交互。记得在执行  SQL  命令时以分号  ;  结尾。





posted @ 2024-03-28 16:29  pearlcity  阅读(1)  评论(0编辑  收藏  举报