lnmp架构解耦
LNMP架构解耦
如图
规划
slb:10.0.0.5
web程序:wp zh 10.0.0.7 10.0.0.8
db:10.0.0.51
nfs:10.0.0.31
#导出数据库
[root@web02 zh]# mysqldump -uroot -p123456 --all-databases>all.sql
[root@mysql ~]# mysqladmin password '123456'
#导入数据库
[root@mysql ~]# mysql -uroot -p123456 <all.sql
#查看数据库是否导入成功
[root@mysql ~]# mysql -uroot -p123456 -e "show databases;"
测试web端程序与数据库连通性
#这里注意 默认不允许root登录数据库
#在数据库中添加普通用户 *.* 所有库所有表 db.tables mysql用户名 %是允许的IP地址段连接
MariaDB [(none)]> grant all on *.* to mysql@'%' identified by '123456';
#刷新缓存
MariaDB [(none)]> flush privileges;
# 修改wp数据库连接
[root@web02 zh]# cat config.php
<?php
$pe['db_host'] = '172.16.1.51'; //数据库主机地址
$pe['db_name'] = 'phpshe_1_8'; //数据库名称
$pe['db_user'] = 'mysql'; //数据库用户名
$pe['db_pw'] = '123456'; //数据库密码
$pe['db_coding'] = 'utf8';
$pe['url_model'] = 'pathinfo_safe'; //url模式,可选项(pathinfo/pathinfo_safe/php)
$pe['h5_host'] = ''; //手机版网址
define('dbpre','pe_'); //数据库表前缀
?>
# 修改zh数据库连接
web端静态资源挂载nfs系统
#创建nfs挂载目录
[root@nfs ~]# cat /etc/exports
#web static resource
/web 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
#创建用户 用于web静态资源 写入nfs
[root@nfs ~]# groupadd -g888 nginx
[root@nfs ~]# useradd -g888 -u888 -M -s /sbin/nologin nginx
#修改/web属主属组
[root@nfs ~]# chown -R nginx.nginx /web/
#梳理web端 进行挂载
slb部署
# 在10.0.0.5部署nginx
[root@web01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@web01 ~]# yum install nginx
#配置反向代理
[root@proxy ~]# cat /etc/nginx/conf.d/slb.conf
server {
listen 80;
server_name www.wp.com;
location / {
proxy_pass http://10.0.0.7;
}
}
#重启服务
nginx -t
systemctl reload nginx
#这里注意,在web应用端,在未匹配到对应域名对应的目录文件时,默认nginx返回conf.d下的第一个配置所对应的目录应用程序
slb部署负载均衡
通过开启proxy_pass参数,由客户端请求slb,转发至上游业务,通过upstream模块开启负载均衡
#反向代理 与客户端建立 参数配置
[root@proxy nginx]# cat proxy_params
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
#配置反向代理
[root@proxy nginx]# cat conf.d/slb.conf
upstream webs {
server 10.0.0.7;
server 10.0.0.8;
}
#wp
server {
listen 80;
server_name www.wp.com;
location / {
proxy_pass http://webs; #定义代理池,也就是上游应用
include proxy_params; #加载slb参数
}
}
#zh
server {
listen 80;
server_name www.zh.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
#test
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
Never try,never know