图片项目部署

2023-05-16

1,准备

mysql 主从+读写分离 3台
nginx+uwsgi+python3.6 1台
redis 哨兵 3台
A nginx uwsgi python3 上传代码包,调试
B mysql redis 配置账号密码,导入数据

A:

下载nginx

[root@localhost ~]# yum -y install nginx
[root@localhost ~]# vim /etc/nginx/nginx.conf #添加以下内容
location / {
include uwsgi_params; # 导入uwsgi配置
uwsgi_pass 127.0.0.1:5555; # 转发端口
uwsgi_param UWSGI_PYTHON /usr/bin/python3; # Python解释器
uwsgi_param UWSGI_CHDIR /opt/web;# 项目根目录
uwsgi_param UWSGI_SCRIPT manager:app; # 项目的主程序,比如
}

在本地上传web的压缩包到opt下
[root@localhost opt]# yum -y install unzip
[root@localhost opt]# unzip web.zip

2,下载python3.6

下载安装依赖包
[root@localhost ~]# yum -y install zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel
[root@localhost ~]# wget https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz
解压安装
[root@localhost ~]# tar -xf Python-3.6.12.tar.xz
[root@localhost ~]# cd Python-3.6.12
修改配置信息
[root@localhost Python-3.6.12]# vim Modules/Setup.dist #给下面这的#号备注去掉
在这里插入图片描述
编译安装
[root@localhost Python-3.6.12]# ./configure --enable-shared
[root@localhost Python-3.6.12]# make -j 2 # -j为当前主机cpu核心数
[root@localhost Python-3.6.12]# make install
配置环境
[root@localhost ~]# vim /etc/profile.d/python3_lib.sh #添加以下内容
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib
[root@localhost ~]# vim /etc/ld.so.conf.d/python3.conf #添加以下内容
usr/local/lib

接下来,执行如下命令使配置好的环境信息生效
[root@localhost ~]# ldconfig
[root@localhost ~]# source /etc/profile
测试 python3
[root@localhost ~]# python3 -V
python 3.7.6

安装所需要的模块
#requirement.txt 文件需要从本地上传
[root@localhost ~]# pip3 install -r requirement.txt

uwsgi 安装

[root@localhost ~]# wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz # 下载资源
[root@localhost ~]# tar xf uwsgi-latest.tar.gz
[root@localhost ~]# yum install -y gcc gcc-c++
[root@localhost ~]# cd uwsgi-2.0.19.1
[root@localhost uwsgi-2.0.19.1]# python3 uwsgiconfig.py --build # 编译,需要gcc
[root@localhost uwsgi-2.0.19.1]# python3 setup.py install # 安装
uwsgi配置文件
[root@localhost uwsgi-2.0.19.1]# vim uwsgi.ini #创建文件 添加以下内容,备注要去掉 不能留空格
[uwsgi]
socket = 127.0.0.1:5555 # 服务端口
processes = 4 # 进程
threads = 2 # 线程
wsgi-file = /opt/web/app.py # 入口文件
master = true # 允许主线程存在
pythonpath = /opt/web # 项目根路径
module = manager
callable = app
memory-report = true
uwsgi 管理

uwsgi --ini 配置文件路径 -d # -d 为后台
[root@localhost uwsgiconfig.py]#uwsgi -d --ini uwsgi.ini

启动nginx
[root@localhost ~]# systemctl start nginx

B:

下载redis并部署
[root@localhost ~]# yum install -y gcc gcc-c++ #安装编译工具
[root@localhost ~]# mkdir -p /data/application —创建工作目录
[root@localhost ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz —下载redis
[root@localhost ~]# tar xzf redis-4.0.9.tar.gz -C /data/application/ —解压
[root@localhost ~]# cd /data/application/
[root@localhost application]# mv redis-4.0.9/ redis
[root@localhost application]# make
[root@localhost ~]# vim redis.conf
bind 192.168.246.202  #只监听内网IP 就是允许谁访问 如允许所有人访问就0.0.0.0
daemonize yes     #开启后台模式将on改为yes
slave-read-only no #这个是只读的权限把yes修改为no。
timeout 300      #连接超时时间
port 6379 #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录—待会要手动创建
pidfile /var/run/redis_6379.pid  #定义pid文件
logfile /var/log/redis.log  #定义log文件
创建存放数据的目录
[root@redis-master redis]# mkdir /data/application/redis/data
配置redis为systemctl启动
[root@redis-master redis]# cd /usr/lib/systemd/system
[root@redis-master system]# vim redis.service
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target

参数详解:
• [Unit] 表示这是基础信息
• Description 是描述
• After 是在那个服务后面启动,一般是网络服务启动后启动

• [Service] 表示这里是服务信息
• ExecStart 是启动服务的命令
• ExecStop 是停止服务的指令

• [Install] 表示这是是安装相关信息
• WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

启动服务:
[root@redis-master system]# systemctl daemon-reload
[root@redis-master system]# systemctl start redis.service

登陆redis
[root@redis-master system]# cd /data/application/redis/src/
[root@redis-master src]# ./redis-cli -h 192.168.246.202 -p 6379
192.168.246.202:6379> ping #测试redis是否可以用
PONG
192.168.246.202:6379> set name newrain #设置key–name,并设置值
OK
192.168.246.202:6379> get name #获取到key
“newrain”
上传缓存文件到redis中
[root@localhost ~]# cd /data/application/redis/data # 吧缓存文件放到这个目录中就ok了

部署mysql
下载mysql,做主从同步
GTID复制
MS流程 GTID:
主配置
Master
1.[root@localhost ~]# vim /etc/my.cnf
log-bin
server-id=1
gtid_mode = ON
enforce_gtid_consistency=1

  1. 进入mysql数据库,授权一个用户
  2. mysql > grant all on . to slave@’%’ identified by ‘123’;
  3. mysql > flush privifeges;
  4. mysql > exit #退出数据库
  5. [root@localhost ~]# systemctl restart myslqd #重启服务

从配置
Slave部署:
1.修改配置文件打开gtid功能:
[root@localhost ~]# vim /etc/my.cnf
log-bin
server-id=2
gtid_mode = ON
enforce_gtid_consistency=1
master-info-repository=TABLE #这两个参数会将master.info和relay.info保存在表中,默认是Myisam引擎,官方建议用
relay-log-info-repository=TABLE #这两个参数会将master.info和relay.info保存在表中,默认是Myisam引擎,官方建议用
relay_log_recovery = on
[root@localhost ~]# systemctl restart mysqld #重启服务

【2. 进入数据库】
2. mysql > stop slave;
3. mysql > edit
4. mysql > change master to
master_host=‘master1’,
master_user=‘授权用户’,
master_password=‘授权密码’,
master_auto_position=1;
4. mysql > start slave; #启动slave角色
5. mysql > show slave status\G #查看主从同步是否成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图片项目部署 的相关文章

随机推荐

  • 配置NTP服务

    设置时区为 Asia Shanghai 设置时区 xff1a timedatectl set timezone Asia Shanghai 查看时区 xff1a timedatectl 有两种情况 一 外网环境 xff0c 向互联网的NTP
  • Could not resolve host: mirrors.aliyun.com; Unknown error

    1 在下载阿里云的centos7镜像时 xff0c 报错如图 2 先ping一下www baidu com 找不到主机 xff0c 这里就说明dns有问题 3 查看一下配置 etc resolv conf 可以看出这个没有dns服务器在 x
  • OpenSSH升级

    OpenSSH是SSH协议的免费开源实现 经常会曝出安全漏洞 xff0c 由于CentOS7自带的OpenSSH版本 xff08 OpenSSH 7 4p1 OpenSSL 1 0 2k fips 26 Jan 2017 xff09 太低
  • linux查看并安装字体

    1 查看系统字体 查看所有已安装的字体 xff1a fc list 查看已安装的中文字体 xff1a fc list lang 61 zh 2 寻找字体方法 1 把windows里面的字体上传到服务器里面 windows字体存放的路径是 x
  • 简单搭建Apache服务器

    1 安装Apache服务 yum y install httpd 2 启动自启Apache服务 systemctl enable now httpd 3 访问 xff08 默认是80端口 xff0c 需要开放防火墙 xff09 4 Apac
  • docker容器设置中文编码

    使用的Dockerfile指定变量的方法 ENV LANG en US utf8
  • mysql开通binlog权限

    GRANT SELECT REPLICATION SLAVE REPLICATION CLIENT ON TO 39 v5 binlog 39 64 39 39 IDENTIFIED BY 39 v5 binlog 39
  • MySQL查看所有用户

    MySQL查看所有用户
  • 【nginx】反向代理是,url包含特殊字符导致400错误

    现象 xff1a 在一个url参数中包含了特殊字符 xff0c 通过nginx请求 xff0c 报400错误 问题分析 xff1a 这个url请求 xff0c 绕开nginx xff0c 可以返回数据 xff0c 判定是nginx出现问题
  • KVM

    KVM安装 查看cpu是否支持虚拟化 cat proc cpuinfo grep E vmx svm 关闭防火墙和selinux 注 xff1a 如果虚拟机ping不通就把防火墙开起来 1 需求内核 rhel6以上 root 64 kvm
  • nginx 防盗链详细步骤

    tailf n0 access log 实时查看网页访问详情 curl e www baidu com 127 0 0 1 e 添加访问头 本机的配置文件内容 本机的网站发布目录 别人的链接网站发布目录
  • nginx 404错误页面配置详解

    nginx 错误页面配置 再主配置文件server中加入一个location模块即可 vim etc nginx conf d default conf server listen 80 server name localhost loca
  • nginx 版本升级和添加模块详解

    版本升级 把1 16 0版本升级为1 18 0 查看本机现在版本为1 16 0 root 64 localhost usr local nginx sbin nginx v nginx version nginx 1 16 0 1 xff0
  • lvs架构

    lvs 4种模式 1 nat 网络地址转换模式 2 dr 直接路由模式 3 tun 隧道模式 4 full nat 双向转换模式 1 xff0c nat xff08 网络地址转换模式架构 xff09 1 nat模式优势是 xff0c 后端可
  • nginx 代理 负载均衡 网站转接的用法

    反向代理 1 xff0c 准备两台nginx真实服务器 a nginx 1 启动网站 内容 xff08 作为网站服务器 xff09 b nginx 2 启动代理程序 一 编辑nginx 2的配置文件 root 64 nginx server
  • LVS_Director + KeepAlived 部署

    1 xff0c 准备四台net机器 其中两台做主 备调度 别外两台做web机器 主 备调度器安装软件 root 64 lvs keepalived master yum y install ipvsadm keepalived 主 root
  • tomcat 详情介绍与部署

    1 xff0c 部署tomcat 安装JDK JDK下载面页 xff1a http www oracle com technetwork java javase downloads index html 下载jdk1 8到服务器 安装jdk
  • Redis 部署及介绍

    1 安装单机版redis root 64 redis master mkdir p data application 创建工作目录 root 64 redis master wget http download redis io relea
  • shenyu中logback替换成log4j2

    一 背景 shenyu框架默认使用的是logback处理日志 xff0c 压测发现写入日志存在瓶颈 基于log4j2优秀的性能 xff0c 使用log4j2替换logback 二 如何替换logback 1 删除logback的依赖项 sp
  • 图片项目部署

    1 xff0c 准备 mysql 主从 43 读写分离 3台 nginx 43 uwsgi 43 python3 6 1台 redis 哨兵 3台 A nginx uwsgi python3 上传代码包 xff0c 调试 B mysql r