网站开发能赚多少钱合肥有多少做网站的

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

网站开发能赚多少钱,合肥有多少做网站的,永久免费的建站系统有哪些,公司合法网站域名怎么注册Day56-LNMP架构扩展为集群模式实战精讲 1. 企业级标准部署知乎产品wecenter1.1 部署知乎软件Wecenter 2. 企业级迁移数据库到独立服务器2.1 为什么要进行数据库的拆分2.2 数据库拆分架构演变过程#xff0c;如下图所示2.3 数据库拆分环境规划2.4 数据库拆分架构详细步骤2.4 we… Day56-LNMP架构扩展为集群模式实战精讲 1. 企业级标准部署知乎产品wecenter1.1 部署知乎软件Wecenter 2. 企业级迁移数据库到独立服务器2.1 为什么要进行数据库的拆分2.2 数据库拆分架构演变过程如下图所示2.3 数据库拆分环境规划2.4 数据库拆分架构详细步骤2.4 web01修改代码连接新数据库环境 3. 快速扩展多台相同的Web服务器php7.43.1 为什么要扩展多台web节点3.2 扩展多台web解决了什么问题3.3多台web节点技术架构组成如下图所示3.4快速扩展一台web节点环境规划3.5 快速扩展一台web节点详细步骤 4. 企业级标准拆分静态资源至独立存储服务器NFS4.1 为什么拆分静态资源至独立存储服务器4.2新增一台nfs存储解决了什么问题4.3 多台web节点技术架构组成如下图所示4.4 快速扩展一台web节点环境规划4.5 快速扩展一台web节点详细步骤 1. 企业级标准部署知乎产品wecenter 1.1 部署知乎软件Wecenter 知乎产品官方: https://www.wecenter.com/downloads/ 1.配置Nginx虚拟主机站点域名为zh.etiantian.org [rootweb01 ~]# cat /etc/nginx/conf.d/zh.etiantian.org.conf server {listen 80;server_name zh.etiantian.org;root /data/zh;index index.php index.html;location ~ .php\( {root /data/zh;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME \)document_root\(fastcgi_script_name;include fastcgi_params;} }#重启nginx服务 [roothttp-server ~]# systemctl restart nginx2.重启nginx服务 [rootweb01 ~]# nginx -t [rootweb01 ~]# systemctl reload nginx3.下载Wecenter产品部署并授权 [rootweb02 ~]# cd /server/tools [rootweb02 tools]# rz #回车上传知乎软件 [rootweb02 tools]# unzip WeCenter_3-6-0.zip -d /data/zh [rootweb02 tools]# chown -R www.www /data/zh/ #部署完需要优化目录权限本机hosts文件配置zh.etiantian.org打开浏览器访问出现可以访问的页面知乎的目录如下 4.wecenter产品也需要使用数据库, 所以需要手动建立数据库 [rootweb02 tools]# mysql -uroot -poldboy123 #登陆数据库 MariaDB [(none)] create database zh; #创建zh数据库 MariaDB [(none)] grant all on zh.* to zhlocalhost identified by oldboy123; MariaDB [(none)] grant select,insert,update,delete on zh.* to zh172.16.1.% identified by oldboy123; #异地数据库用户只授权增删改查。 MariaDB [(none)] flush privileges; MariaDB [(none)] quit[rootweb01 zh]# rm -f /data/zh/install/index.php5.通过浏览器访问zh.etiantian.org并通过网页配置最终结果 6.知乎产品优化 #权限优化 chown -R root.root /data/zh chown -R www.www /data/zh/uploads /data/zh/cache/ /data/zh/tmp/ #限制目录下php被访问 location ~* /(?:uploads|cache|tmp)/.*\.php\) {deny all; } #前后台分离独立后台服务器 生产场景方案 #动静分离独立静态服务器 生产场景方案2. 企业级迁移数据库到独立服务器 拆分数据库至至独立数据库服务器 2.1 为什么要进行数据库的拆分 数据库的瓶颈CPU、磁盘、内存数据库服务器可以MySQLRedis在一起但不要和Web一起 缓解web网站的压力增强数据库读写性能提高用户访问的速度 2.2 数据库拆分架构演变过程如下图所示 2.3 数据库拆分环境规划 主机名称应用环境外网地址内网地址web01nginxphp10.0.0.7172.16.1.7db01mysql10.0.0.51生产场景无172.16.1.51 2.4 数据库拆分架构详细步骤 1.web01网站服务器操作如下 1备份web01上的数据库oldboy123是数据库密码 [rootweb01 ~]# mysqldump -uroot -poldboy123 -B -A|gzip/tmp/bak.sql.gz2将web01上备份的数据库拷贝至db01服务器上 [rootweb01 ~]# scp /tmp/bak.sql.gz root172.16.1.51:/tmp
#永久停止web01本地数据库 [rootweb01 ~]# systemctl stop mariadb [rootweb01 ~]# systemctl disable mariadb2.db01数据库服务器操作如下 1将web01服务器上推送的数据库备份文件恢复至db01服务器新数据库中 [rootdb01 ~]# yum install mariadb mariadb-server -y [rootdb01 ~]# systemctl start mariadb [rootdb01 ~]# systemctl enable mariadb [rootdb01 ~]# cd /tmp gzip -d bak.sql.gz [rootdb01 tmp]# mysql /tmp/bak.sql #没有重启还是没密码状态。

[rootdb01 tmp]# mysql -e show databases

Database
information_schema
blog
mysql
performance_schema
test
zh

[rootdb01 tmp]# mysql -e select user,host from mysql.user;

| user | host |

| root | 127.0.0.1 | | blog | 172.16.1.% | | root | localhost | | zh | localhost | ——————2数据库导入完成后重启数据库使用新密码进行登录并检查数据库已被导入成功 [rootdb01 ~]# systemctl restart mariadb #测试下进入flush privileges; [rootdb01 ~]# mysql -uroot -poldboy123 -e show databases; #查库 [rootdb01 ~]# mysql -uroot -poldboy123 -e select user,host from mysql.user; #查用户 [rootdb01 ~]# mysql -uroot -poldboy123 -e show tables from zh; #查表

[rootdb01 ~]# mysql -uroot -poldboy123 -e show grants for zh172.16.1.%; #查表

Grants for zh172.16.1.%
GRANT USAGE ON . TO zh172.16.1.% IDENTIFIED BY PASSWORD *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515
GRANT SELECT, INSERT, UPDATE, DELETE ON zh.* TO zh172.16.1.%

[rootdb01 tmp]# mysql -uroot -poldboy123 -e revoke CREATE, ALTER ON zh.* from zh172.16.1.%; [rootdb01 tmp]# mysql -uroot -poldboy123 -e show grants for zh172.16.1.%; | Grants for zh172.16.1.% | GRANT USAGE ON . TO zh172.16.1.% IDENTIFIED BY PASSWORD FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 | | GRANT SELECT, INSERT, UPDATE, DELETE ON zh. TO zh172.16.1.%3在新数据库上授权, 允许所有网段, 通过单个账户管理单个数据库 #授权所有权限 grant all privileges #授权所有库所有表 . #将授权赋予给哪个用户这个用户只能通过哪个网段过来(%所有) zh172.16.1.% #授权该用户登录的密码 identified by mysql grant select,insert,update,delete on zh.* to zh172.16.1.% identified by oldboy123; mysql grant select,insert,update,delete on blog.* to zh172.16.1.% identified by oldboy123; mysql flush privileges; mysql quit2.4 web01修改代码连接新数据库环境 1修改blog产品代码连接数据库的配置文件 [rootweb01 ~]# vim /data/blog/wp-config.php

数据库名称

define(DB_NAME, blog);

数据库用户

define(DB_USER, blog);

数据库密码

define(DB_PASSWORD, oldboy123);

数据库地址

define(DB_HOST, db01.etiantian.org); ####核心点用域名2修改wecenter产品代码连接数据库的配置文件 [rootweb01 zh]# grep -iR oldboy123|grep -v cache system/config/database.php: password oldboy123, [rootweb01 zh]# vim /data/zh/system/config/database.php host db01.etiantian.org, ####核心点用域名 username zh, password oldboy123, dbname zh,3最后访问网站成功打开并能发表问题至此拆分数据库完成

  1. 快速扩展多台相同的Web服务器php7.4 扩展多台相同的Web服务器 3.1 为什么要扩展多台web节点 单台web服务器能抗住的访问量是有限的配置多台web服务器能提升更高的访问速度。 3.2 扩展多台web解决了什么问题 单台web节点如果故障会导致业务down机 多台web节点能保证业务的持续稳定扩展性高 多台web节点能有效的提升用户访问网站的速度
    没有流量的时候单机比集群快。 3.3多台web节点技术架构组成如下图所示 3.4快速扩展一台web节点环境规划 主机名称应用环境外网地址内网地址web01nginxphp10.0.0.7172.16.1.7web02nginxphp10.0.0.8172.16.1.8db01mysql10.0.0.51172.16.1.51 3.5 快速扩展一台web节点详细步骤 通过web01现有环境快速的扩展一台web02的服务器数据库统一使用db01 1.创建www用户 [rootweb02 ~]# useradd -u1111 www -s /sbin/nologin -M2.安装LNP #[rootweb02 ~]# scp -rp root172.16.1.7:/etc/yum.repos.d/* /etc/yum.repos.d/ #[rootweb02 ~]# scp -rp root172.16.1.7:/etc/pki/rpm-gpg/* /etc/pki/rpm-gpg/ ##[rootweb02 ~]# yum install nginx -y #[rootweb02 ~]# yum -y install php71w php71w-cli php71wcommon php71w-devel php71w-embedded php71w-gd php71wmcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb#安装PHP7.4 #安装php第三方官方yum源 yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y #安装yum-tools管理工具 yum -y install yum-utils #启用PHP 7.4 Remi存储库 yum-config-manager –enable remi-php74 #安装php扩展服务包 rpm -e $(rpm -qa|grep php) yum install php74-php php74-php-cli php74-php-common php74-php-devel php74-php-embedded php74-php-gd -y yum install php74-php-mcrypt php74-php-mbstring php74-phppdo php74-php-xml php74-php-fpm php74-php-mysqlnd -y yum install php74-php-opcache php74-php-pecl-memcached php74-php-pecl-redis php74-php-pecl-mongodb -y [rootweb02 ~]# php74 -v PHP 7.4.21 (cli) (built: Jun 29 2021 15:17:15) ( NTS ) [rootweb02 ~]# rpm -ql php74-php-fpm /etc/logrotate.d/php74-php-fpm /etc/opt/remi/php74/php-fpm.conf /etc/opt/remi/php74/php-fpm.d /etc/opt/remi/php74/php-fpm.d/www.conf3.将web01的nginx配置文件导入到web02 [rootweb02 ~]# scp -rp root172.16.1.7:/etc/nginx /etc/4.将web01的php配置文件导入到web02 #[rootweb02 ~]# scp -rp root172.16.1.7:/etc/php-fpm.d /etc/5.配置php-fpm用户与Nginx的运行用户保持一致 [rootweb01 ~]# sed -i /^user/c user www /etc/opt/remi/php74/php-fpm.d/www.conf [rootweb01 ~]# sed -i /^group/c group www /etc/opt/remi/php74/php-fpm.d/www.conf [rootweb01 blog]# egrep ^user|^group /etc/opt/remi/php74/php-fpm.d/www.conf user www group www6.从web02服务器上拉回web1上的站点目录/data到本地的/下。 [rootweb02 ~]# scp -rp root172.16.1.7:/data / [rootweb02 ~]# chown -R www.www /data/7.最后启动nginx与启动php74-php-fpm并加入开机自启 [rootweb02 ~]# systemctl start php74-php-fpm nginx [rootweb02 ~]# systemctl enable php74-php-fpm nginx8.把所有域名解析到10.0.0.8然后打开浏览器测试

  2. 企业级标准拆分静态资源至独立存储服务器NFS 拆分静态资源至独立存储服务器NFS 4.1 为什么拆分静态资源至独立存储服务器 当后端的web节点出现多台时会导致用户上传的图片、视频附件等内容仅上传至一台web服务器那么其他的web服务器则无法访问到该图片。 4.2新增一台nfs存储解决了什么问题 保证了多台web节点静态资源一致。有效节省多台web节点的存储空间。统一管理静态资源便于后期推送至CDN进行静态资源加速 4.3 多台web节点技术架构组成如下图所示 4.4 快速扩展一台web节点环境规划 主机名称应用环境外网地址内网地址web01nginxphp10.0.0.7172.16.1.7web02nginxphp10.0.0.8172.16.1.8nfsnfs172.16.1.31db01mysql172.16.1.51 4.5 快速扩展一台web节点详细步骤 1.nfs服务端操作步骤如下 0创建www用户 useradd -u1111 www -s /sbin/nologin -M1安装并配置nfs [rootnfs01 ~]# rpm -qa nfs-utils nfs-utils-1.3.0-0.68.el7.x86_64 [rootnfs ~]# yum install nfs-utils -y [rootnfs ~]# cat /etc/exports /data/blog 172.16.1.0/24(rw,sync,all_squash,anonuid1111,anongid1111) /data/zh 172.16.1.0/24(rw,sync,all_squash,anonuid1111,anongid1111)2创建共享目录并进行授权 [rootnfs01 ~]# mkdir /data/{blog,zh} -p [rootnfs01 ~]# chown -R www.www /data/3启动nfs服务并加入开机自启 [rootnfs01 ~]# systemctl restart rpcbind nfs [rootnfs01 ~]# systemctl enable rpcbind nfs2.web01端操作步骤如下 1web01节点安装nfs然后使用showmount查看服务端共享的资源 [rootweb01 ~]# rpm -qa nfs-utils rpcbind rpcbind-0.2.0-49.el7.x86_64 nfs-utils-1.3.0-0.68.el7.2.x86_64 #[rootweb01 ~]# yum install nfs-utils -y [rootweb01 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /data/zh 172.16.1.0/24 /data/blog 172.16.1.0/242如何查找blog静态资源存放的位置

    浏览器-右键-检查-Network-选择左上角的Select按钮-点击对应的图片然后能获取到对应的url地址如下

    http://blog.etiantian.org/wp-content/uploads/2024/03/1e030d5e06954f86bd4514f1db3d3ddb.png3备份web01服务器上blog的静态资源因为该服务器上的资源资源最全 [rootweb01 zh]# scp -rp /data/blog/wp-content/uploads/* root172.16.1.31:/data/blog/4web01客户端执行挂载操作 [rootweb01 zh]# mount -t nfs 172.16.1.31:/data/blog /data/blog/wp-content/uploads/ [rootweb01 zh]# df -h 文件系统 容量 已用 可用 已用% 挂载点 172.16.1.31:/data/blog 17G 2.4G 15G 15% /data/blog/wp-content/uploads5将挂载信息加入开机自启 [rootweb01 zh]# tail -1 /etc/fstab 172.16.1.31:/data/blog /data/blog/wp-content/uploads nfs defaults 0 0 [rootweb01 zh]# umount 172.16.1.31:/data/blog [rootweb01 zh]# df -h|grep upload [rootweb01 zh]# mount -a [rootweb01 zh]# df -h 文件系统 容量 已用 可用 已用% 挂载点 172.16.1.31:/data/blog 17G 2.4G 15G 15% /data/blog/wp-content/uploads###fstab延迟启动nfs [rootweb01 zh]# systemctl list-unit-files|grep remote-fs remote-fs.target disabled [rootweb01 zh]# systemctl enable remote-fs.target [rootweb01 zh]# systemctl list-unit-files|grep remote-fs remote-fs.target enabled3.web02端操作步骤如下 1web02客户端直接挂载nfs即可 [rootweb02 zh]# mount -t nfs 172.16.1.31:/data/blog /data/blog/wp-content/uploads/ [rootweb02 zh]# df -h 文件系统 容量 已用 可用 已用% 挂载点 172.16.1.31:/data/blog 17G 2.4G 15G 15% /data/blog/wp-content/uploads2将挂载信息加入开机自启 [rootweb01 zh]# tail -1 /etc/fstab 172.16.1.31:/data/blog /data/blog/wp-content/uploads nfs defaults 0 0 [rootweb01 zh]# umount 172.16.1.31:/data/blog [rootweb01 zh]# df -h|grep upload [rootweb01 zh]# mount -a [rootweb01 zh]# df -h 文件系统 容量 已用 可用 已用% 挂载点 172.16.1.31:/data/blog 17G 2.4G 15G 15% /data/blog/wp-content/uploads###fstab延迟启动nfs [rootweb01 zh]# systemctl list-unit-files|grep remote-fs remote-fs.target disabled [rootweb01 zh]# systemctl enable remote-fs.target [rootweb01 zh]# systemctl list-unit-files|grep remote-fs remote-fs.target enabled作业;知乎目录分离到NFS 1.找上传目录 2.挂载并放入fstab。4.定时任务web01,web02备份到backup [rootweb01 /]# cat /server/scripts/bak.sh backup/backup Path\(backup/\)(hostname -i) [ -f \(Path ]||mkdir -p \)Path if [ \((date %w) -eq 2 ];thendate\)(date %F -d -1day)week1 elsedate\((date %F -d -1day) fi#备份 cd \)Path
    tar zcfh conf
    \({date}.tar.gz /var/spool/cron/root /server/scripts /etc 2/dev/null tar zcf www_\){date}.tar.gz /data –exclude/data/blog/wp-content/uploads 2/dev/null tar zcf logs\({date}.tar.gz /var/log/nginx 2/dev/null #获取原始指纹 find \)Path -type f -name *\({date}.tar.gz|xargs md5sum\)Path/\((hostname -i)_\){date}.flag #推送 rsync -az \(backup/ rsync_backup172.16.1.41::backup --password-file/etc/rsync.password#删除7天前的数据 find \)backup/ -type f -name *.tar.gz -mtime 7|xargs rm -f5.检查nfs01的sersync检查backup的rsync。 6.windows一键安装PHP集成环境 PHPTS 1.06 版本集成 Nginx 1.17.8、PHP 7.4.2、PHP 7.3.14、PHP 5.6.40、MySQL 8.0.19x64、Memcached 1.5.22、Redis 4.0.14x64、MongoDB 4.3.3x64、phpMyAdmin 5.0.1、Bash 终端并可通过组件方式下载安装 InfluxDB时间序列数据库、HeidiSQLMySQL客户端管理工具、Another.Redis.Desktop.ManagerRedis客户端管理工具。推荐在64位 Windows 系统上安装 PHPTS。 Nginx for PHPTS 是专门为 Windows 移植的高并发版本采用Windows 输入输出完成端口IOCP媲美 Linux 下的 epoll。 链接: http://zyan.cc/phpts/ Linux下面也有一键集成LNMP ftp wincp 排错思路 授权时候 select,insert,update,delete,alter,create —-缺少。。。all 命令行登录不了 ​ mysql -uroot -poldboy123 -h172.16.1.51数据库主机名 db01.etiantian.org localhost权限root.root(www.www) /dataselinux关了。 安装知乎就好了最后再调回来生产标准配置。。依然没问题