网站搭建项目一

news/2024/5/10 4:58:07/文章来源:https://blog.csdn.net/yotagee/article/details/9081057

1.搭建mysql proxy,实现读写分离
mysql proxy - lua script
mysql proxy 不应该在生产环境中使用
1)
mysql-master server(vm1)端:
yum -y install mysql-server mysql-connector-odbc  // 不用装mysql mysql-devel
/etc/init.d/mysqld start
mysqladimin -u root -p redhat
mysql -uroot -predhat


vim /etc/my.cnf
修改server_id = 1
log_bin = master_log


/etc/init.d/mysqld restart
mysqldump --all-database > /tmp/mysql-master.sql
mysql > show mater status;  //记录log position,假设master_log_file="xx1.000001",master_log_pos=106;
mysql > grant replication slave on *.* to
slave@'vm2.ip'  //从ip地址
mysql > grant replication slave on *.* to
slave@'vm3.ip' 
mysql > flush privileges;
scp /tmp/mysql-master.sql [vm2.ip]:/tmp/     //可以通过 mysqldump --all-databases | ssh vm2.ip "mysql" 直接同步到其他机器

scp /tmp/mysql-master.sql [vm3.ip]:/tmp/
--->转 2)配置 vm2 可以同步mysql-master
<--- 接3)授权给 proxy //这边仅作测试,测试完后可以删除掉 drop user
test@'host2.ip'
mysql -uroot -predhat
mysql > grant all privileges on *.* to
test@'host2.ip' identified by 'redhat' //host2 = proxy server
mysql > flush privileges;

<---接12)-----tomcat ejforum授权-------  tomcat server上可以使用mysqlproxy地址进行连接
mysql
> create database javatest;
mysql javatest < ejforum-2.3/install/script/easyjforum_mysql.sql  //nfs上挂载的东西,见12
GRANT ALL PRIVILEGES ON javatest.* TO
shan3@'host2.ip' IDENTIFIED BY 'redhat' WITH GRANT OPTION;  //mysqlproxy可以使用shan3用户来使用javatest数据库,当其他client需要访问javatest数据库时,只需用授予proxy的用户名和密码登录访问proxy server即可,不需直接访问真正的mysql server。
flush privileges;

//这边的discuz授权也是在这里授权
2)
mysql-slave server端(vm2):
yum -y install mysql-server mysql-connector-odbc

vim /etc/my.cnf

加入 server_id=2    //不然slave start 会报错


/etc/init.d/mysql start
mysqladmin -u root -p redhat
mysql < /tmp/mysql-master.sql
mysql -uroot -predhat
mysql > change master to master_host='vm1.ip',master_user='root',master_password='redhat',master_log_file="xx1.000001",master_log_pos=106;
mysql > slave start;
mysql > show slave status\G;  //检查
---> 转 3) 配置 vm3 也可以同步到maysql-master
3)
mysql-slave server端(vm3):clone 3)就好
yum -y install mysql-server mysql-connector-odbc

vim /etc/my.cnf

加入 server_id=3   //不然slave start 会报错


/etc/init.d/mysql start
mysqladmin -u root -p redhat
mysql < /tmp/mysql-master.sql
mysql -uroot -predhat
mysql > change master to master_host='vm1.ip',master_user='root',master_password='redhat',master_log_file="xx1.000001",master_log_pos=106;
mysql > slave start;
mysql > show slave status\G;  //检查
自己在vm1上写入数据,进一步检查是否AB同步?
---> 转4)
4)
mysql-proxy server端(真机2-host2):
 yum -y install  mysql-proxy 
 (需将mysql-proxy rpm包加入到yum 源中去)
cd /usr/src/mysql-proxy/
rpm -ivh  mysql-proxy-0.8.1-1.el6.x86_64.rpm //建议用yum安装方便
//实现读写分离
rpm -ql mysql-proxy | grep lua | grep rw //我们查询下该版即0.8.1是否有lua,没有的话我们从0.8.3中取
cd /usr/src/mysql-proxy
tar xf mysql-proxy-0.8.3.tar.gz
ls mysql-prxoy-0.8.3/lib/ | grep rw
cp mysql-prxoy-0.8.3/lib/rw-splitting.lua /usr/share/lua/5.1
vi /etc/sysconfig/mysql-proxy  //可以定义proxy后端的server ip地址
『注释掉前面几行,只留最后一行 proxy的启动参数 』
『-b vm1.ip:3306 -r vm2.ip:3306 -r vm3.ip -s /usr/share/lua/5.1/rw-splitting.lua』 //添加读写分离
service mysql-proxy start
//现在再做一次负载测试,读写分离实现
---> 转1)让master授权该mysql-proxy


5)客户端登录测试(192.168.0.X)
yum -y install mysql
mysql -utest -predhat -h'host2.ip' // -p4040 客户端登录时加默认端口 ,host2=proxy server (-p 4040? 在授权中指定么)
//这边的授权用户自己改动
---> 6)

 

2.网站搭建配置
6)dns server (真机2 - host2)
yum -y intall bind bind-chroot
配置www.jsp.comwww.php.com 2个域名解析 指向host1.ip() //注意named权限问题
--->7)


7)nginx server(真机1-host1)
cd /usr/src/iterms/nginx
rpm -ivh nginx-1.2.7-1.el6.ngx.x86_64.rpm
数据目录:/usr/share/nginx/
默认网站页面目录: /usr/share/nginx/html/
vim /etc/nginx/nginx.conf
     #gzip  on;
    upstream cgi_pool {
 server vm1:9000;
 server vm2:9000;
    }
 upstream jsp_pool {
 ip_hash;  //负载均衡
 server vm1:8080;
 server vm2:8080;
    }      
cd /etc/nginx/conf.d/   //配置文件
cp -a default.conf cgi.conf
vim cgi.conf
添加修改
    server_name 
www.php.com;
        root   /usr/share/nginx/discuz;
        index  index.php index.html index.htm;

    location ~ \.php$ {
    #    root           /usr/share/nginx/php;
        fastcgi_pass   cgi_pool;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
cp -a default.conf jsp.conf
vim jsp.conf
添加修改
    server_name 
www.jsp.com;
    location / {
#        root   /usr/share/nginx/html;
#        index  index.html index.htm;
        proxy_pass
http://jsp_pool/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_4
04;
    }
 
/etc/init.d/nginx restart

 

8)php server (vm1)
yum install php php-mysql 
rpm -ivh spawn-fcgi-1.6.3-1.el6.x86_64.rpm
//建nginx用户,使其uid和gid跟前端一样,每台机器上相同的用户名建立相同的uid和gid 方便维护
//rpm --scripts -qp nginx/nginx-1.2.7-1.  //在nginx server端查看建nginx用户的命令,可以同样建
useradd nginx ....
vim /etc/sysconfig/spaum-fcgi
//需要在编译的时候有加上 cgi-enable 才有/usr/bin/php-cgi //端口方式利于扩展 //
options="-u nginx -g nginx -p 9000 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"   //去掉监听网段,默认全网段
 //数据挂载
 mkdir /usr/share/ngix/discuz/ -p
 chown nginx. /usr/share/naginx/discuz/
mount nfs.ip:/var/nfs/discuz/ /usr/share/nginx/discuz/  //可以vim /etc/fstab 永久挂载

启动cgi服务器
service spawn-fcgi start
netstat -ntalp | grep 9000;
//页面授权


9)php server (vm2)

copy 8)

10)tomcat server (wm3)

tar xf jdk-7u15-linux-x64.tar.gz
cp -r jdk1.7.0_15/  /usr/local/java  //安装jdk
useradd tomcat
cd /home/tomcat
tar xf apache-tomcat-7.0.37.tar.gz -C /home/tomcat    //可以放到var或home目录下
ln -s apache-tomcat-7.0.37 tomcat //可以方便后续切换不同版本
cd /home/tomcat/tomcat/
vim /home/tomcat/.bashrc

export JAVE_HOME=/usr/local/java

. /home/tomcat/.bashrc
./startup.sh   //启动tomcat,这里可以测试下
http://localhost:8080
-----------
创建服务脚本:
参照tomcat.pdf 中普通用户使用的创建 page4 ,注意修改其中的一些路径
chown -R tomcat. /home/tomcat/tomcat
/etc/init.d/tomcat restart
cp  mysql-connector-java-5.1.23-bin.jar ~/tomcat/lib/   //将mysql的相关库copy过去
//网站根目录下
假设为 /home/tomcat/tomcat/ejforum/
mkdir -p /home/tomcat/tomcat/ejforum/ROOT/
chwon -R tomcat.  /home/tomcat/tomcat/ejforum/ROOT/
ejforum的数据放在nfs server 上
mount host1.ip:/var/nfs/ejforum/ /home/tomcat/tomcat/ejforum/ROOT/  (可以通过vim /etc/fstab 永久挂载)
cd /home/tomcat/tomcat/
vim conf/server.xml
添加虚拟主机,在原来虚拟主机配置下添加
      <Host name="
www.jsp1.com"  appBase="ejforum"  //修改
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
如果需要其为默认虚拟主机,则要修改。。。参照pdf
定义数据库
vim ejforum/ROOT/WEB-INF/conf/config.xml
 在database标签下修改
 username="shan3" password="redhat"  
 url="jdbc:mysql://host2.ip:3306/javatest?" // host2= mysql proxy ,参见1)所给定义
 /etc/init.d/tomcat restart


11)tomcat server (wm4)
与10)基本相同,只需修改 Host name="www.jsp2.com"  //如不单独访问也可以不修改


12)nfs server(host1)
//discuz
tar xf discuz* -C /var/nfs/discuz/ //应该是upload文件夹
chmod -R nginx /var/nfs/discuz/

//ejforum
useradd tomcat -u uid -g uid -s /sbin/nologin  //uid,gid 取自nginx端的tomcat id
unzip ejforum-2.3.zip
mv ejforum-2.3/ejforum/ /var/nfs/    //
chmod -R tomcat. /var/nfs/ejforum/

vim /etc/exports
/var/nfs 192.168.0.0/24(rw,async)
/etc/init.d/nfs start && chkconfig nfs on

---> 转到1)去授权


13)monitor server (host1)
 使用ganglia软件包监视cpu,memory
 
 
//clone机器,修改ip,主机名;chkconfig ; setenforce;授权,flush privileges;chown;hosts;dns;port;

文中蓝色字体为后续修改,实验中出现很多细节问题,最终还碰到的问题,

1. php 网页出现 “no input file specified” ,查看 nginx  server log : tail -f /var/log/nginx/error.log

会说index.php等网站根目录下的文件找不到。2种情况它指向的仍然是nginx server上的网站根目录,要么是cgi server上挂载到的根目录数据(从nfs处挂载到的)权限不够,

因为我们知道,nfs的默认挂载过来是nobody 所有者。

2.tomcat网站在上传附件时出现权限error,nfs问题。

3.如果客户端访问网站出现空白页,可以考虑是否安装了php-mysql等工具

4.再整个实验中,都将selinux设置为pemission,即 setenforce = 0


=====更新于7月16日=====

今天发现nfs共享出discuz,在访问http时会出现访问不到的问题,这里我们只能采用将discuz在本地完全搭建好之后,再进行数据的迁移,这样可以解决此问题

假设192.168.122.1 为nfs storage 、客户端和mysql端, 192.168.122.2 为http server

122.1机器:

mkdir /tmp/web_data          //给定需要共享出web数据的目录

chown apache /tmp/web_data

vim /etc/exports

加入"/tmp/web_data 192.168.122.0/24(rw,async)" 

/etc/init.d/nfs restart

=======

yum  -y install mysql-server mysql-devel php php-mysql

/etc/init.d/mysql start

mysql

> grant all on *.* to 'root'@'%' identified by 'uplooking';

> flush privileges;


122.2:

unzip Discuz.zip

cp -r ./upload/* /var/www/html/

chown -r apache /var/www/html/

/etc/init.d/httpd start


122.1:

firefox 

输入192.168.122.2 访问安装

数据库中 根据122.1上grant授权范围进行修改,安装成功之后,再次访问192.168.122.2 成功后

回到


122.2

mount 192.168.122.1:/tmp/web_data /mnt    //临时挂载web_data目录,此时里面没有web数据

cd /var/www/html

tar cf - . | tar xf - -C /mnt     //将当前已经安装完全的web数据迁移到web_data目录

umount /mnt        //卸载临时点

rm -rf *       //删除122.2 本地的web数据,我们最终要使用的是122.1上的web_data数据

mount 192.168.122.1:/tmp/web /var/www/html    //挂载122.1上的web数据

再到122.1上进行访问

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

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

相关文章

magento|网站后台对评论进行回复的功能拓展

最近运营部门提出要增加评论回复并显示的功能&#xff0c;所以大体流程就是数据库增加字段&#xff0c;然后编辑评论的时候增加输入框&#xff0c;提交评论的时候保存回复数据&#xff0c;最后在前台显示即可。 具体操作及代码如下&#xff1a; 1、review_detail新增字段&…

linux|ubuntu安装prerender解决vue前后端分离后的seo问题

商城网站进行了前后端分离&#xff0c;使用vue框架对系统进行了整体重构。重构之后seo基本失效&#xff0c;搜索引擎的机器人无法抓取到网站的源代码&#xff0c;所以需要考虑解决seo的问题。结合前端人员的建议&#xff0c;使用prerender进行处理&#xff0c;具体流程如下&…

linux|nginx开启gzip提升网站访问速度

gzip on; #开启gzip gzip_vary on; gzip_disable "msie6"; gzip_min_length 1k; #不压缩临界值,大于1k的才压缩,一般不用改 gzip_buffers 4 16k; gzip_comp_level 6; #压缩级别,数字越大压缩的越好 gzip_types text/plain application/jav…

前后端分离的过程利用prerender解决seo问题的误区

网站进行前后端分离之后&#xff0c;需要解决seo的问题。本来使用的是prerender服务&#xff0c;具体的流程如https://blog.csdn.net/lolgigeo/article/details/102897876所述&#xff0c;上述链接为本人初步的尝试&#xff0c;但经过再次的排查发现存在一个很大的误区。首先&a…

渗透实战之对外国一网站进行的SQL盲注测试

起因&#xff1a;大早上体育课改成了线上&#xff0c;又正逢看到大佬发了一篇SQL注入文章&#xff0c;就想着复现一下&#xff0c;练练手&#xff0c;本篇就是记录一下渗透过程。 先判断闭合类型 1/1如下 1/0如下 两次回显不一样&#xff0c;说明是数字型注入&#xff0c;尝试…

中电信低调推出微博网站

4月27日凌晨消息&#xff0c;继中移动之后&#xff0c;中电信近日也在低调推出微博网站。这或许意味着&#xff0c;在多年尝试转型互联网之后&#xff0c;国内运营商正在围绕最新业务再次展开布局。 腾讯科技在北京某大学的校园活动中发现&#xff0c;中电信旗下的微博网站“…

3.cn网站分析-退出率与跳出率详解

跳出率&#xff08;Bounce Rate&#xff09;:浏览单页即退出的次数/访问次数 退出率&#xff08;Exit Rate&#xff09;&#xff1a;离开次数&#xff08;包括一次访问过程中用户浏览单页即跳出的次数&#xff0c;也包括浏览多页后从该页面退出的次数&#xff09;/进入该页的…

准确度量 持续改进—网站分析驱动目标达成

1 为什么要对网站进行分析&#xff1f; 首先是第一部分&#xff0c;我们为什么要对网站进行分析&#xff1f;网站分析并不是所有网站的标准配置&#xff0c;很多网站都没有做这个工作&#xff0c;他们也运营的很好。那么我们为什么需要网站分析呢&#xff1f; 在回答这些问题之…

python3 某网站注册脚本 自用

python脚本代码 """ 某网站经常注销账号,开发一键注册脚本,写的很烂,有很多可以优化的地方 """from time import sleepfrom selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.select i…

自己实现的网站

利用空余时间&#xff0c;自己用vue动手实现了一个小网站

阿里云网站备案中遇到的基本概念类问题解答

本文为介绍备案过程中涉及的基本概念类问题。这些常见问题在实际使用中会经常遇到&#xff0c;所以老魏在这里也是为了给自己留一个记录&#xff0c;以后用到的时候查看&#xff0c;同时也有分享给大家参考使用帮助的意思。 如何取消备案&#xff1f; 刚提交备案订单还未成功…

阿里云网站备案-验证备案问题解答汇总

在阿里云ICP代备案管理系统提交备案申请时&#xff0c;如出现该域名存在进行中的订单、该域名对应的主体信息在系统中已经存在等错误提示信息&#xff0c;或您想要取消进行中的备案订单&#xff0c;请参考本文进行操作。 1、错误提示&#xff1a;该域名存在进行中的订单 可能原…

动态网站在不同平台都有写什么问题!!这里给大家一些展示

目录 一、Tomcat启动失败 1、错误1 2、错误2 3、Maven模块相互依赖错误 二、Spring Mvc 1、错误1 三、项目编写过程 1、springmvc无法跳转页面404 2、Maven工程pom.xml顶头红叉无报错 3、IDEA无法使用JQuery 4、JSP的设置路径报错 5、SpringBoot查询数据报错 四、…

java web电脑网站微信扫码支付(Servlet+JSP)

上篇文章写到了app开发中的微信支付和支付宝支付连接&#xff1a;https://blog.csdn.net/qq_35318713/article/details/92832397&#xff0c; 这次再把电脑网站扫码支付的过程记录一下&#xff0c;其实原理上还是差不多&#xff0c;就是多了一个生成二维码的过程。 上代码&am…

MyCms 自媒体 CMS 系统 v2.6,SEO 优化升级

MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统&#xff0c;助力开发者知识技能变现。 MyCms 基于Apache2.0开源协议发布&#xff0c;免费且不限制商业使用&#xff0c;欢迎持续关注我们。 V2.6 更新内容 新增&#xff1a;SEO-URL优化插件 新增&#xff1a;文章…

轻松实现织梦网站数据迁移到新站点

众所周知&#xff0c;织梦已经开始收费了&#xff0c;这对国内版权意识增强应该不算坏事&#xff0c;但想要免费使用又不想惹麻烦的站长们就有点麻烦了。 有不少朋友来问&#xff0c;我们 MyCms 支不支持织梦数据迁移&#xff0c;目前我们已经实现一键导入织梦的原文章和商品了…

开源多语言商城 CMS 企业建站系统,MyCms v3.9 发布

MyCms 是一款基于 Laravel 开发的开源免费的开源多语言商城 CMS 企业建站系统。 MyCms 基于 Apache2.0 开源协议发布&#xff0c;免费且可商业使用&#xff0c;欢迎持续关注我们。 V3.9 更新内容 新增&#xff1a;模板自定义配置 新增&#xff1a;读取模板配置函数 新增&…

网站架构

百科名片 网站架构 网站架构&#xff0c;一般认为是根据 客户需求分析的结果&#xff0c;准确定位网站目标群体&#xff0c;设定网站整体架构&#xff0c;规划、设计网站栏目及其内容&#xff0c;制定 网站开发流程及顺序&#xff0c;以最大限度地进行高效资源分配与管理的设计…

转载:程序员实用工具网站

转载 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共…

http://www.miuo.com 我的网站.密友地带,RSS Home,密友,RSS,XML

http://www.miuo.com http://miuo.com http://www.miuo.com/syndication.axd 密友科技资讯[miuo.com]_致力于从世界日新月异的科技信息中获取最大的信息价值&#xff0c;提供简明IT新闻,IT业界资讯,提供讨论平台&#xff0c;报道即时信息&#xff0c;讨论热烈的新闻、评论、…