轻松搭建web网站架构服务

news/2024/5/9 21:47:43/文章来源:https://blog.csdn.net/Friendsofthewind/article/details/120250756

学习目标:

搭建lnmp网站架构,实现负载均衡、高可用,以及https,并通过NFS优化数据存储。

服务器IP地址
web1192.168.2.137
web2192.168.2.136
mysql192.168.2.133
PHP192.168.2.130
lb(keepalived)1192.168.2.135
lb(keepalived)2192.168.2.128
NFS192.168.2.3

搭建lnmp

提示:实验环境,关闭防火墙,企业环境需要设置安全策略,Nginx及各种服务版本和安装方式不一样,配置步骤相同,但是配置文件略有差异!

步骤:
一、 搭建环境
启动三台虚拟机:关闭防火墙、setenforce;确定IP地址,网卡类型(以一台nat为例),保障可以互相ping通
在这里插入图片描述
注意:查看有没有已安装的软件,以Nginx为例,必须卸载干净
卸载源码安装的Nginx:
先卸载程序:
在这里插入图片描述
再删除链接文件:
在这里插入图片描述
二、 web1:安装Nginx服务

1、配置yum源:
在这里插入图片描述
添加以下内容,保存退出:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2、清理缓存,安装
在这里插入图片描述
3、搭建wordpress

上传wordpress源码包
复制wordpress安装包,到虚拟机/,解压并赋权

unzip wordpress-4.9.4-zh_CN.zip
chmod -R 777 /wordpress

创建虚拟主机配置文件
先将默认文件重命名,防止影响配置。

cd /etc/nginx/conf.d/
mv default.conf default.conf.bak

编辑blog网站配置文件
vim /etc/nginx/conf.d/blog.conf
添加以下内容,保存退出

server {listen 80;server_name blog.benet.com;root /wordpress;index index.php index.html;location ~ \.php$ {root /wordpress;fastcgi_pass 192.168.2.130:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

检查语法:
在这里插入图片描述
提示:location附加有不合法内容。php$之间空格删掉,解决问题。
在这里插入图片描述
启动Nginx服务:systemctl start nginx

注意:腾讯云服务器以yum安装的nginx/1.20.1,网页根目录在,/usr/share/nginx/html,把WordPress解压到此,其余一样

在这里插入图片描述

编辑zh网站配置文件:
vim /etc/nginx/conf.d/zh.conf
添加以下内容,保存退出

server {listen 80;server_name zh.benet.com;root /zh;index index.php index.html;location ~ \.php$ {root /zh;fastcgi_pass 192.168.2.130:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
重启服务

4、安装zh

1)方法同上。上传或下载wecenter源码包
注意:这个软件包解压是零散的所以先创建目录
mkdir /zh
cd /zh
解压
unzip WeCenter_3-3-4.zip
设置权限
chmod -R 777 /zh

2)复制wecenter安装包,到php虚拟机/zh目录下,赋权
cd /zh
unzip wecenter_3-3-4.zip
chmod -R 777 /zh

三、 mysql服务器:安装mysql(必须保证没有已安装的mysql或mariadb,以上传下载好的rpm包,本地安装的方式为例,此方法好处是不用配置yum源)
在这里插入图片描述
启动mysql:systemctl start mysqld

为blog网站设置账户及授权

登录数据库:mysql(没有密码的情况下可以这样登录)
创建数据库:create database blog;
创建远程管理用户:grant all on blog.* to lisi@’%’ identified by ‘123.com’;

为zh网站设置账户及授权

登录数据库:mysql(没有密码的情况下可以这样登录)
创建数据库:create database zh;
创建远程管理用户:grant all on zh.* to wangwu@’%’ identified by ‘123.com’;

4、 PHP服务器:安装PHP

下载epel源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
执行安装命令
yum -y install php72w php72w-cli php72w-common php72w-devel \
php72w-embedded php72w-gd php72w-mbstring php72w-pdo \
php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache

在web1复制wordpress目录到php的根目录
scp -rp /wordpress 192.168.2.130:/
在web1复制zh目录到php的根目录

修改php服务器的配置文件
vim /etc/php-fpm.d/www.conf

定位并修改为:
listen = 192.168.2.130:9000
listen.allowed_clients = 192.168.2.137,192.168.2.136

保存退出
重启php:systemctl restart php-fpm

四、任意找一台虚拟机通过域名访问blog,安装并配置
以在web2安装为例:
修改hosts文件:
在这里插入图片描述

填写参数:注意分布式安装mysql地址不能使用默认的localhost,要改成真实IP
在这里插入图片描述
搭建成功可以访问到首页即可!
在这里插入图片描述
搭建zh
在这里插入图片描述
搭建成功如下图:
在这里插入图片描述


负载均衡

提示:前提和前面一样
lb1:
配置web2节点服务器(web2安装Nginx省略)
1)在web1归档压缩wordpress和zh目录,复制到web2根目录解压
cd /
tar zcf blog_zh.tar.gz /wordpress /zh/
拷贝到web2
scp blog_zh.tar.gz 192.168.2.136:/

2)复制web1的nginx配置文件到web2
scp -rp /etc/nginx/conf.d/* 192.168.2.136:/etc/nginx/conf.d/

3)web2操作
解压:
在这里插入图片描述
启动nginx服务
systemctl start nginx

验证web2:
修改hosts文件:随便找台可以连通的局域网虚拟机,填写web2的IP
在这里插入图片描述
通过域名访问:blog和zh都没问题
在这里插入图片描述
cd /etc/nginx/conf.d/
删除默认配置文件
rm -f default.conf
编辑文件,保存退出
vim /etc/nginx/nginx_params

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;

创建lb配置文件,
vim /etc/nginx/conf.d/lb1.conf
添加:

upstream web_cluster {server 192.168.2.137:80;server 192.168.2.136:80;
}server {listen 80;server_name blog.benet.com;location / {proxy_pass http://web_cluster;include nginx_params;}
}server {listen 80;server_name zh.benet.com;location / {proxy_pass http://web_cluster;include nginx_params;}
}

lb2:先别急着配置,验证一下lb1是否配置成功
修改lb2hosts文件:
在这里插入图片描述
验证:可以访问两个站点即可
配置lb2:
拷贝lb1的文件进行修改即可!注意:远程拷贝,加选项-rp
scp -rp 192.168.2.135:/etc/nginx/nginx_params /etc/nginx/
在这里插入图片描述
修改文件名:
cd /etc/nginx/conf.d/
mv lb1.conf lb2.conf
启动服务:systemctl start nginx


nfs

配置NFS服务器:先修改hosts文件,验证上步是否成功,lb2是否可用。
配置:
1、 配置yum源,安装
yum -y install nfs-utils rpcbind
2、创建挂载点
mkdir -p /nfs/{blog,zh}
3、 发布共享目录
vim /etc/exports
添加:
/nfs/blog 192.168.2.0/24(rw,sync,no_root_squash)
/nfs/zh 192.168.2.0/24(rw,sync,no_root_squash)
4、重启nfs服务
systemctl restart rpcbind
systemctl restart nfs
5、把wordpress的内容目录挂载到nfs
cd /wordpress
cp -rp wp-content/ wp-contentbak
mount -t nfs 192.168.1.116:/nfs/blog wp-content
cp -rp wp-contentbak/* wp-content/
6、设置永久挂载
vim /etc/fstab
添加:
192.168.1.116:/nfs/log /wordpress/wp-content nfs defaults 0 0

高可用

1)安装keepalived(两台都装)
yum -y install keepalived

(2)配置keepalived
主服务器:lb1
vim /etc/keepalived/keepalived.conf
修改为:

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id lb1   //需要修改vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens33  //需要修改virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.254}
}                                     

保存退出
启动服务:systemctl start keepalived

备服务器:lb2
vim /etc/keepalived/keepalived.conf
修改为:

global_defs {router_id lb2			#路由id号,和主服务器必须不同
}vrrp_instance VI_1 {state BACKUP			#状态:BACKUP备   MASTER主interface ens33virtual_router_id 51priority 99				#优先级:备比主要小advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.254		#虚拟路由ip,公共ip}
}

保存退出
启动服务:systemctl start keepalived
验证:两台keepalived都正常情况,漂移地址在优先级高的lb1
在这里插入图片描述
解决nginx故障造成群集无法工作

编辑nginx监控脚本
vim /sh/check_nginx_proxy.sh
#!/bin/bash
killall -0 nginx
if [ $? -ne 0 ];then
systemctl stop keepalived
fi
保存退出
chmod a+x /sh/check_nginx_proxy.sh

添加脚本追踪模块到keepalived配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
router_id lb1
}
vrrp_script check_nginx_proxy {
script “/sh/check_nginx_proxy.sh”
interval 2
weight 5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.254
}
track_script {
check_nginx_proxy
}
}
保存退出
重启服务:systemctl restart keepalived

或者,将脚本放到计划任务里
在这里插入图片描述
验证:关闭Nginx,keepalived自动关闭
systemctl stop nginx
在这里插入图片描述

配置https

创建密钥见上期文章。

修改Nginx1的配置文件:
vim /etc/nginx/conf.d/blog.conf

        listen 443 ssl;server_name blog.benet.com;ssl_certificate ssl_key/server.crt;ssl_certificate_key ssl_key/server.key;root /wordpress;index index.php index.html;location ~ \.php$ {root /wordpress;fastcgi_pass 192.168.2.130:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}server {listen 80;server_name blog.benet.com;rewrite .* https://$server_name$1 redirect;
}

vim /etc/nginx/conf.d/zh.conf

server {listen 443 ssl;server_name zh.benet.com;ssl_certificate ssl_key/server.crt;ssl_certificate_key ssl_key/server.key;root /zh;index index.php index.html;location ~ \.php$ {root /zh;fastcgi_pass 192.168.2.130:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}server {listen 80;server_name zh.benet.com;rewrite .* https://$server_name$1 redirect;
}

验证:打开客户端,hosts文件修改成漂移地址192.168.2.254,http访问自动跳转https即可
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_782153.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算必备-企业架构网站综合项目

目录流程一、实现效果二、步骤1.实施规范2.实施流程总结流程 1.需求分析,写项目规划书(项目经理、技术总监cto) 2.画架构图,将架构分解成各种模块(架构师) 3.各模块实施和测试(运维工程师&…

Asp.NET MVC 拍卖网站,拆解【1】预览与目录

本人最近带创业团队基本做完了一个艺术品拍卖的外包项目,分为网站前台(asp.net mvc5),网站管理员管理的后台使用的9900端口(asp.net mvc5),监听拍卖状态的windows服务,为手机端提供服…

html5相关网站

2019独角兽企业重金招聘Python工程师标准>>> http://designmodo.com/ 非常非常多的下载资源 UI界面 http://www.cnblogs.com/lhb25/ 有很多好的文章 http://www.freebiesgallery.com/ 免费psd http://medialoot.com 免费模板 http://chocotemplates.com/ 模板下载 h…

如何解决国产TongWeb中间件启动之后无法访问网站管理后台界面

背景介绍:什么是国产TongWeb中间件呢? TongWeb7 是遵循 JavaEE7 Web Profile 规范的企业级应用服务器,它为企业应用提供了可靠、可伸缩、可管理和高安全的基础平台。同时具有功能完善、支持开放标准和基于组件开发、多层架构、轻量等特点&…

IIS 发布网站 ashx无法访问

IIS6 问题 1.是否安装相应的.net版本 2.查看.net版本是否一致 3.查看web 服务扩展中.net版本是否允许。 4.添加相应的MIME类型文件 在IIS中右键网站→属性→主目录→配置→添加 可执行文件路径:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 取消确认文件是…

网络爬虫-cnzz网站统计(umuuid参数加密破解)

总体来说算是比较easy的js加密 由于涉及到部分隐私 就简单说下该参数的加密思路 以马蜂窝为例 该网站使用的是CNZZ统计流量 首先抓包看参数,如图 可以比较清晰地看到 cnzz的统计是发起的这个get请求 然后看下这些参数 我们不确定的参数有 id / cnzz_eid / umuuid …

网站页面横幅维护以及实现方案(含详细代码)

在很多中小型的网站开发公司来讲,承担网站建设后的日常维护是极为重要的一部分工作;也为了后续的其他产品的推广积攒更好的客户关系;网站维护的现状绝大多数都是内容维护,功能维护及新增频率会少很多,针对于此现状&…

如何在电脑上测试手机网站(补充)和phonegap

颜海镜 介绍了专业人士精准测试手机网站的经验 http://www.cnblogs.com/yanhaijing/p/3557261.html, 因为太专业了,稍显复杂和琐碎,这里我介绍下我一直关注的的 inter XDK 去年的 xdk 是浏览器插件,今年用nodejs重写了,可见前端会…

Windows Azure 网站自愈

编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Apurva Joshi 撰写。 您有多少次在半夜被叫醒去解决一个仅需重新启动网站即可解决的问题?要是可以自动检测一些状况并自动恢复该有多好! 随着 Windows Azure 网站 (WAWS) 最新更新的推…

win2008r2的iis7.5手动建站方法,iis7.5中用独立用户建立网站的方法,提高网站安全性...

win2003的iis6手动建站方法,iis6中用独立用户建立网站的方法,提高网站安全性,我们前面的教程有说明,请看http://www.piis.cn/zhishi/web574.asp 现在我们说下在WIN2008R2环境中IIS7.5中手动建立网站并设置网站安全的方法: 设置以上身份…

快速排名 让人疯狂的黑帽seo技术

对于黑帽seo大家或许并不陌生,黑帽seo和白帽seo恰恰相反,是作弊手段。有白帽seo的时候,就有了黑帽seo一直到现在。但隔行如隔山这句话这句话一点都没错,再没接触黑帽seo技术之前我根本不知道黑帽seo能这么快的排名。今天我就解密下…

网站页面横幅维护以及实现方案(含详细代码)

在很多中小型的网站开发公司来讲,承担网站建设后的日常维护是极为重要的一部分工作;也为了后续的其他产品的推广积攒更好的客户关系;网站维护的现状绝大多数都是内容维护,功能维护及新增频率会少很多,针对于此现状&…

公祭日网站变灰白色效果

四天前 星期六 清明节   2020年,一个很不平凡的年度。鼠疫、新型冠状病毒肺炎和就在清明节前夕的西昌山火。在这一段时间里我国经历很多惨痛的时刻,很多英雄“逆向而行”去到了最危险的前线保护人民群众生命财产的安全!更有很多英雄在保护…

如何快速创建个人网站

个人网站是属于自己的一个网站,可以用来分享自己生活感悟、知识想法等,或者介绍自己的生活教育经历,常用于面试,给人眼前一亮的感觉。那么该怎样快速拥有个人网站呢?个人建站方式概况 个人建站方式主要分为云服务器开发…

黑科技!无需代码快速搭建网站的平台来了

通过智能网站搭建平台,可以无需代码快速搭建网站。 步骤一:注册/登陆爱用建站平台PC或移动端登陆用户中心-爱用智能网站,新用户注册【iYong通行证】。 步骤二:通过类似PPT编辑操作的可视化设计器设计上线网站。保存即可上线&…

没有设计能力,如何打造个人网站?

没有设计能力,如何打造个人网站? 通过爱用建站—Design Lab的主题功能,快速完成网站布局排版和色彩搭配,让您快速上线品牌网站! 第一步:选择主题 1、进入【爱用平台】——【Design Lab】桌面端/移动端&am…

爱用建站一键开启头条巨量流量

什么是头条搜索? 头条搜索是字节跳动推出的搜索引擎服务。所收录网页内容将出现于今日头条等字节跳动APP矩阵的搜索内容中。 头条搜索站点设置教程? 1、注册并登陆【头条搜索站长平台】 2、进入首页,添加绑定站点 3、填写站点域名&#xf…

头条号已加入爱用建站-智慧链接大家族,流量入口又增加了啦

12流量入口升级成13流量入口了,因为爱用建站-智慧链接多了 头条号 这个新成员。 商家一直都在追逐流量。因为有流量就有目标群体,接下来的步骤就是拉新,转化,留存,继续拉新老用户拉新,形成一个动态的循环。…

超级好用的智能网站小功能

01、网站短链功能可以进行埋点和统计数据,生成的链接前缀是平台的域名“j-cc.cn”。 使用智能链接,可使用品牌自定义域名替换“j-cc.cn”,并且在你自己的品牌域名短链接中支持HTTPS。 用户和客户的转换和信任增加了。 进入智能链接-链接管…

快来学学爱用建站新功能【Light Press】微单页,超级实用

爱用建站新功能来了:【Light Press】微单页 一、微单页,发布即上线 进入爱用建站【智慧链接】,【Light Press】有两个入口,点击左侧【自媒体】或点击【内容发布】就可以开始编辑你的微单页了。 通过iYong云库-编辑器自由创作&am…