当前位置: 首页 > news >正文

建站平台功能结构图邯郸建设局网站

建站平台功能结构图,邯郸建设局网站,游戏网站开发计划书,网站外包方案前言 本次部署是把2个项目、mysql、redis、uwsgi封装在一个容器中#xff0c;ngnix封装在一个容器中 实际应用中最好是#xff1a; 项目和uwsgi封装在一个容器中mysql单独封装#xff0c;可能还要读写分离#xff0c;主从同步等redis单独封装#xff0c;可能还要读写分离ngnix封装在一个容器中 实际应用中最好是 项目和uwsgi封装在一个容器中mysql单独封装可能还要读写分离主从同步等redis单独封装可能还要读写分离主从同步等ngnix单独封装 这样才能方便以后增加服务器以提升性能 部署流程主要如下 1、安装docker自己找度娘要教程 2、拉取centos7的镜像到本地 3、启动容器并进入容器 4、拷贝项目代码、数据库备份文件、环境包requirements.txt到容器中 5、在容器中安装mysql并且创建数据库恢复备份文件 6、安装redis 7、搭建项目需要运行的环境 8、修改程序的相关配置 9、安装uwsgi并启动 10、新启动一个centos7容器安装ngnix并配置好 11、提交保存镜像 一、拉取centos镜像到本地 docker pull centos 1 注镜像直接到https://hub.docker.com/搜索 二、启动容器 docker run -d -it --privileged -p 805:80 -p 5002:5000 -p 8001:8000 -p 10027:22 -p 20002:3306 --name centos-iqiyi -e LANGzh_CN.utf8 centos /usr/sbin/init 1 说明 –privileged /usr/sbin/init 这两行主要解决容器中使用systemctl去启动服务时出现D_Bus错误的问题 -d: 后台运行 -it: 组合使用创建一个伪终端 -p: 端口映射本机端口容器端口 –name: 容器名需要注意命名规范可自己定义 only [a-zA-Z0-9][a-zA-Z0-9_.-] -e防止乱码编码格式 -p 20002:3306 是给mysql数据库的如果需要外界访问mysql数据库就映射端口否则不需要这里就没有映射redis数据库的端口因为外界不需要访问 最后跟上下载下来的镜像名 docker常用命令 # 查看当前docker 中哪些容器正在运行 docker ps # 查看当前docker 中哪些容器正在运行 包括已经终止的 docker ps -a # 第一次初始化启动的时候使用run后来都是用start docker start id # 启动后再次进入 docker exec -it id /bin/bash # 重启 docker restart id # 停止 docker stop id # 删除 注意删除前需要停止镜像 docker rm id 1234567891011121314 进入容器 docker exec -it 7ed9c6fbf986 /bin/bash 1 三、拷贝项目压缩包到容器中 sudo docker cp /Users/liheng/Desktop/iqiyi.zip 7ed9c6fbf986:/ # /Users/liheng/Desktop/iqiyi.zip本地文件目录 # 7ed9c6fbf986容器id # /拷贝到根目录 1234 从主机复制到容器sudo docker cp host_path containerID:container_path 从容器复制到主机sudo docker cp containerID:container_path host_path 四、解压缩项目压缩包 1、安装支持ZIP的工具 yum install -y unzip zip 1 2、解压iqiyi.zip unzip iqiyi.zip 1 注压缩一个zip文件的方法zip 文件名.zip 文件夹名称或文件名称 3、解压缩后发现中文乱码分别执行以下三个命令 yum -y install kde-l10n-Chinese yum -y reinstall glibc-common localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 export LC_ALLzh_CN.utf8 123 2个项目解压缩后的路径如下 /iqiyi/爱奇艺电影/爱奇艺电影.py/iqiyi/iqiyi_backstage/iqiyi_backstage.py 五、安装mysql 依次执行以下语句 yum install -y wget wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum install -y mysql-server systemctl start mysqld.service systemctl status mysqld.service 123456 查看root原始密码 grep password /var/log/mysqld.log # 如果以上语句无法查看则打开mysqld.log直接搜索password查看密码 12 红色框部分即为原始密码 修改root密码 获得初始密码后第一件事就是要重新设置root密码否则什么事情也做不了因为MySQL强制要求必须重新设置root密码。 mysql -uroot -p # 输入原始密码 12 # 修改密码 mysqlALTER USER rootlocalhost IDENTIFIED BY MyNewPass4!; # 把MyNewPass4修改为你要设置的新密码修改外部访问权限 mysqluse mysql; mysqlupdate user set host ‘%’ where user ‘root’; mysqlselect host, user from user; mysqlexit 12345678 修改sql_mode模式 vi /etc/my.cnf# 在[mysqld]下面添加 sql_mode # 重启 systemctl restart mysqld.service 1234567 六、导入数据库 上传moviespider.sql_.zip到/iqiyi/ 目录下 sudo docker cp /Users/liheng/Downloads/moviespider.sql_.zip 7ed9c6fbf986:/iqiyi 1 解压 unzip moviespider.sql_.zip 1 # 进入mysql创建数据库 mysql create database iqiyi charsetutf8;use iqiyi # 导入数据 source /iqiyi/moviespider.sql 123456 七、安装redis 参考链接https://www.cnblogs.com/zuidongfeng/p/8032505.html 注下载redis时下载在/usr/local目录下然后解压安装 八、环境搭建 1、安装python3 安装方法参考https://www.cnblogs.com/JahanGu/p/7452527.html 2、安装pip3 安装相关依赖 yum install openssl-devel -y yum install zlib-devel -y 12 安装setuptools wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6 sudo python setup.py build sudo python setup.py install 123456 安装pip wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md53a73c4188f8dbad6a1e6f6d44d117eeb tar -zxvf pip-8.0.2.tar.gz cd pip-8.0.2 python setup.py build sudo python setup.py install 123456 建立软连接 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 1 3、导入环境包requirements.txt 先拷贝requirements.txt到容器内的iqiyi文件夹方法同上面拷贝文件的方法 cd /iqiyi pip3 install -r requirements.txt 12 发现报错 Flask-MySQLdb0.2.0 mysqlclient1.3.14 删除掉以上这2个才能正确导入 九、修改程序配置 在2个程序中分别修改config.py中的数据库用户名密码因为你在你电脑上安装的和在服务器上面的密码是不一致的 然后在程序入口修改app.run()需要添加host和prot这2个内容才能指定启动和外网访问 app.run(host‘0.0.0.0’,prot8000) 至于设置哪个端口要看当前这个docker开放了什么映射端口并且无占用才可以 十、安装uwsgi并进行配置 安装 pip3 install uwsgi# 注意安装后使用uwsgi命令会显示无此命令此时需要建立软连接 ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 1234 在iqiyi文件夹创建一个flaskconfig文件夹所有项目的配置文件全在这里面 创建iqiyi.ini的配置文件 [uwsgi] #uwisi启动程序所使用的地址和端口 http0.0.0.0:5000 #记录pid方便停止和重启服务 pidfile/tmp/uwsgi.pid #项目所在路径 chdir/iqiyi/爱奇艺电影/ #flask程序启动文件 wsgi-file爱奇艺电影.py #使用主进程 mastertrue #多站点 vhosttrue #flask里面启动Application变量名 callableapp #进程数 processes4 #线程数 threads2 manage-script-name true touch-reload /iqiyi/爱奇艺电影/ 123456789101112131415161718192021 ​ 创建iqiyi_backstage.ini的配置文件 [uwsgi] #uwisi启动程序所使用的地址和端口 http0.0.0.0:8000 #记录pid方便停止和重启服务 pidfile/tmp/uwsgi.pid #项目所在路径 chdir/iqiyi/iqiyi_backstage/ #flask程序启动文件 wsgi-fileiqiyi_backstage.py #使用主进程 mastertrue #多站点 vhosttrue #flask里面启动Application变量名 callableapp #进程数 processes4 #线程数 threads2 manage-script-name true touch-reload /iqiyi/iqiyi_backstage/ 123456789101112131415161718192021 ​ 编写一下停止uwsgi的脚本stop.sh,如果不用停止脚本就要一个个的查杀进程很麻烦 #!/bin/sh NAMEuwsgi if [ ! -n $NAME ];thenecho no argumentsexit; fiecho NAME/spanIDspanclasstokenoperator/spanspanclasstokenvariablespanclasstokenvariable‘/spanspanclasstokenfunctionps/span−efspanclasstokenoperator∣/spanspanclasstokenfunctiongrep/spanspanclasstokenstringspanclasstokenvariableNAME/span IDspan classtoken operator/spanspan classtoken variablespan classtoken variable/spanspan classtoken functionps/span -ef span classtoken operator|/span span classtoken functiongrep/span span classtoken stringspan classtoken variableNAME/spanIDspanclasstokenoperator/spanspanclasstokenvariablespanclasstokenvariable‘/spanspanclasstokenfunctionps/span−efspanclasstokenoperator∣/spanspanclasstokenfunctiongrep/spanspanclasstokenstringspanclasstokenvariableNAME | grep -v “$0” | grep -v “grep” | awk {print KaTeX parse error: Expected EOF, got } at position 9: 2/span}̲/spanspan c…ID echo “#############杀死已存在进程#####################” for id in ID/spanspanclasstokenkeyworddo/spanspanclasstokenfunctionkill/span−9spanclasstokenvariableID/span span classtoken keyworddo/span span classtoken functionkill/span -9 span classtoken variableID/spanspanclasstokenkeyworddo/spanspanclasstokenfunctionkill/span−9spanclasstokenvariableid echo “kill $id” done echo “#############################################” 1234567891011121314151617 对stop.sh进行赋值权限 chmod 777 stop.sh 1 十一、启动uwsgi # 使用uwsgi的Emperor —— 多应用部署 uwsgi --emperor /iqiyi/flaskconfig/ -d my.log# 也可以每个应用依次启动依次启动时可以再ini配置文件中配置log文件参考美多商城部署 uwsgi --ini /iqiyi/flaskconfig/iqiyi_backstage.ini uwsgi --ini /iqiyi/flaskconfig/iqiyi.ini 123456 十二、配置ngnix 启动容器 docker run -d -it --privileged -p 806:806 -p 808:808 --name centos-iqiyi-ngnix -e LANGzh_CN.utf8 centos /usr/sbin/init 1 进入容器 docker exec -it fcd4c8ad55dc /bin/bash 1 安装ngnix参考https://www.cnblogs.com/kaid/p/7640723.html 注 # 在/usr/local目录下执行下载否则可能无法编译 # 使用wget命令下载前要先安装wget yum install -y wget 123 打开ngnix的配置文件 vi /usr/local/nginx/conf/nginx.conf 1 修改配置文件 ······此处省略······http { ······此处省略······upstream iqiyi_backstage span classtoken punctuation{!-- --/spanspan classtoken comment# 此处需为uwsgi服务器所在ip地址/spanserver 192.168.0.107:8001span classtoken punctuation;/spanspan classtoken punctuation}/spanupstream iqiyi span classtoken punctuation{!-- --/spanspan classtoken comment# 此处需为uwsgi服务器所在ip地址/spanserver 192.168.0.107:5002span classtoken punctuation;/spanspan classtoken punctuation}/span······此处省略······server span classtoken punctuation{!-- --/spanlisten 808span classtoken punctuation;/spanserver_name localhostspan classtoken punctuation;/spanlocation / span classtoken punctuation{!-- --/spanspan classtoken comment# 请求转发到多个uwsgi服务器/spanproxy_pass http://iqiyispan classtoken punctuation;/spanspan classtoken punctuation}/spanspan classtoken punctuation}/spanserver span classtoken punctuation{!-- --/spanlisten 806span classtoken punctuation;/spanserver_name localhostspan classtoken punctuation;/spanspan classtoken comment#charset koi8-r;/spanspan classtoken comment#access_log logs/host.access.log main;/spanlocation / span classtoken punctuation{!-- --/spanspan classtoken comment#root html;/spanspan classtoken comment#index index.html index.htm;/spanspan classtoken comment# 请求转发到多个uwsgi服务器/spanproxy_pass http://iqiyi_backstagespan classtoken punctuation;/spanspan classtoken punctuation}/span······此处省略······ 123456789101112131415161718192021222324252627282930313233343536373839404142434445 启动ngnix cd /usr/local/nginx/sbin ./nginx 12 修改配置文件后重新启动ngnix ./nginx -s reload 1 Upstream 主要用来做负载均衡 负载均衡其实就是在upstream 当中加入多一条server信息nginx会自动进行选择转发上面只加一条。 其中 location 是定义路由如果使用location / 是属于精准匹配不加 就相当于正则匹配 proxy_pass 转发服务到哪里 后面拼接一定要加上http:// 否则也是不成功的这里要注意缩进无所谓能看明白就行但语法千万不能错一个单词错就没法启动了。 十三、docker提交保存镜像 1、保存docker commit 容器id 自定命名保存自定义名时最好保存格式为账户名/镜像名 方便上传时不需要再更改 docker commit 7ed9c6fbf986 nengliudian/centos-iqiyi-uwsgi docker commit fcd4c8ad55dc nengliudian/centos-iqiyi-ngnix 12 2、登录docker login 一般如果在软件中已经登录这里可以不用登录了可以当成验证是否成功登录check一下 3、如果是第一次准备上传镜像需要先到 hub.docker.com中登录创建一个镜像仓库 4、上传自定镜像 首先查看一下本地的镜像有哪些 docker images 1 5、上传镜像 # docker push 镜像名tags docker push nengliudian/centos-iqiyi-ngnix:latest docker push nengliudian/centos-iqiyi-uwsgi:latest 123 出现进度条就成功了等待就可以 十四、镜像备份与迁移 我们可以通过save命令将镜像打包成文件拷贝给别人使用 docker save -o 保存的文件名 镜像名 docker save -o ./centos-iqiyi-uwsgi.tar nengliudian/centos-iqiyi-uwsgi 1 在拿到镜像文件后可以通过load方法将镜像加载到本地 docker load -i ./centos-iqiyi-uwsgi.tar 1 以后项目迁移到任何操作系统下通吃 原文链接[https://blog.csdn.net/liudian_cz/article/details/88850773?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_paramdepth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param](https://blog.csdn.net/liudian_cz/article/details/88850773?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_paramdepth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param)
http://www.zqtcl.cn/news/16163/

相关文章:

  • wordpress的mime类型简单建优化网站无需技术
  • 有没有专门做翻译的网站仿牌网站优化
  • 网站建设seo优化网站建设发展历程ppt
  • 常州城乡和住房建设厅网站违反建设投诉网站举报
  • 宁波网站建设方案联系方式营销型 网站开发
  • 12306网站为什么做不好使路由器设置虚拟主机
  • 做 爱 网站小视频wordpress 未通过审核应用
  • 广州市公司网站建设公司ip营销的概念
  • 淄博网站建设制作网站建站时间
  • 去哪网网站设计风格湟中网站建设
  • 创建小型网站的步骤网络营销策划案怎么写
  • 白银网站建设公司宝安各大网站制作比较好的
  • 网站开发计什么科目网站安全检测中的安全事件监测包含哪些监控指标
  • 杭州盘石做网站专业吗做兼职什么网站比较好
  • 怎样解析网站域名宝安区做外贸网站的公司
  • WordPress建站步骤php 网站开发架构
  • 男女做那个暖暖网站互联网是指哪些工作
  • 邢台网站优化定制免费网站源码大全下载
  • 网站与数据库的联系wordpress feedsky
  • 做模板网站的公司wordpress排版代码
  • psd企业网站模板怎么做网站埋点
  • 小学英语教师做应用相关网站买国外的东西在哪个平台
  • 汽车音响网站建设公司网站建设的不足
  • 网站建设协议 模板下载中国的外贸企业有哪些
  • 做plc课程设计的网站使用 ahrefs 进行 seo 分析
  • 基于jsp的电子商务网站开发阳江市建设网站
  • 建立网站流程图广州免费技能培训班
  • 五百亿建站模板建设银行管官方网站
  • 沈阳谷歌网站建设网络引流怎么做啊?
  • 东莞seo网站关键词优优化凡科官网首页