小型电商网站的商品详情页的页面静态化架构以及其缺陷
电商网站里,大概可以说分成两种,第一种小型电商,简单的一种架构方案,页面静态化的方案;大型电商,复杂的一套架构
页面静态化:通过固定一个页面的模块,把数据填充到模板中生成一个页面,用户请求的时候直接返回静态页面。通过cms管理系统填充简单的数据通过模板生成静态页面,如果模板改变了,则需要重新渲染所有数据填充到模板中。
对于小网站,页面很少,很实用,非常简单实用通过模板引擎。如果是大网站商品多访问量大,很难实现。
页面静态化静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略。
1、在虚拟机中安装CentOS
在VM虚拟机中安装centos6.5,安装步骤zhe这里就不说了。主要需要做一些简单的配置。
1:可以使用桥接模式,也可以使用NAT模式,只要保证本机与虚拟机可以进行沟通。桥接模式是虚拟机与本机的IP处于同一个局域网,NAT模式则是随机的IP。
2:配置网络:编辑网络配置文件,例如centos6.5是在etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
配置文件中删除多余的,留下上面有用的,保存之后使用命令重启网络。
service network restart #重启网络
ifconfig # 查看ip
3:固化ip,上面配置之后是自动分配的地址,可能会因为一些情况改变,做固化操作
依然是编辑文件etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static # 原本是dhcp,现在改成static
IPADDR=192.168.0.X
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
之后依然是重启网络 service network restart
这里说一下,这里我们用的是centOs7,稍微有点不同。网络配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33
编辑这个文件
以上是编辑好的,然后保持使用命令重启网络service network restart,
使用命令 ip addr 查看ip,发现有ip地址了
4:配置hosts
vi /etc/hosts
配置本机的hostname到ip地址的映射
5:关闭防火墙
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
vi /etc/selinux/config
SELINUX=disabled
关闭windows的防火墙
后面要搭建集群,有的大数据技术的集群之间,在本地你给了防火墙的话,可能会没有办法互相连接,会导致搭建失败
6:配置yum
yum clean all
yum makecache
yum install wget
到此为止,我们已经安装好了一台centos虚拟机,其他的虚拟机安装步骤相同。
2、在每个CentOS中都安装Java和Perl
(1):安装JDK
jdk的安装这里不多说,比较简单,之前也有了解。
(2)安装Perl-要安装perl是因为后期会用到 java + nginx + perl
# yum拉取需要的环境
yum install -y gcc
# wget拉取perl安装包
wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
# 解压安装包
tar -xzf perl-5.16.1.tar.gz
# 进入perl中
cd perl-5.16.1
# 配置安装位置
./Configure -des -Dprefix=/usr/local/perl
# 编译和安装
make && make test && make install
# 检查版本查看是否安装成功
perl -v
为什么要装perl?我们整个大型电商网站的详情页系统,复杂。java+nginx+lua,需要perl。
perl,是一个基础的编程语言的安装。
1、安装gcc,在虚拟机命令窗口中输入:yum install -y gcc
2、下载perl安装包
输入命令:wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
3、解压缩包,输入命令:tar -xzf perl-5.16.1.tar.gz
4、安装perl 切换到解压包目录: cd perl-5.16.1
输入命令:./Configure -des -Dprefix=/usr/local/perl
完成后输入命令:make && make test && make install
5、完成后输入:perl -v 查看是否安装成功
3、在4个虚拟机中安装CentOS集群,配置4台CentOS为ssh免密码互相通信(一般大数据都需要配置的)
(1)按照上述步骤,再安装三台一模一样环境的linux机器
(2)另外三台机器的hostname分别设置为eshop-cache02,eshop-cache03,eshop-cache04
(3)安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系
比如说,在eshop-cache01的hosts里面
192.168.31.187 eshop-cache01
192.168.31.xxx eshop-cache02
192.168.31.xxx eshop-cache03
192.168.31.xxx eshop-cache04
1:配置4台CentOS为ssh免密码互相通信(一般大数据都需要配置的)--方法有两个
在本地 CentOS 中配置 SSH 免密码登录
ssh-keygen -t rsa
生成本机的公钥,过程中不断敲回车即可,ssh-keygen 命令默认会将公钥放在 /root/.ssh 目录下。
cd /root/.ssh
cp id_rsa.pub authorized_keys
将公钥复制为 authorized_keys 文件,此时使用 SSH 连接本机就不需要输入密码了(每台机器都需要)
2:使用 ssh-copy-id -i hostname 命令将本机的公钥拷贝到指定机器的 authorized_keys 文件中
这里我们有4台机器,01,02,03,04,一共4台机器。
在01机器上使用命令ssh-copy-id -i hostname:/root/.ssh (指到authorized_keys 文件所在位置) 对02,03,04 三台机器都进行一个免密配置。
然后分别在02,03,04 三台机器上都只对01配置免密命令ssh-copy-id -i hostname
在 eshop-cache02、eshop-cache03、eshop-cache04 机器上执行 ssh-copy-id -i hostname 命令,然后在 eshop-cache01 上执行如下拷贝动作。
scp authorized_keys eshop-cache02:/root/.ssh
scp authorized_keys eshop-cache03:/root/.ssh
scp authorized_keys eshop-cache04:/root/.ssh
在01机器使用上面命令,意思就是把01机器上的配置好的authorized_keys 都复制到其他机器,这里所有机器之间ssh连接就都免密了。
到这里整个 CentOS 集群环境就已经配置好了。