Apache和LNMP架构做动静分离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache和LNMP架构做动静分离相关的知识,希望对你有一定的参考价值。
Apache和LNMP架构做动静分离
nginx的静态处理能力很强,动态处理能力不足,所以要把动态的页面交给Apache,实现动静分离。
先安装apache服务
[root@localhost ~]# yum install httpd httpd-devel -y ##安装apacher软件包
[root@localhost ~]# systemctl start httpd.service ##开启服务
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http ##永久允许http服务
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https ##永久允许https服务
success
[root@localhost ~]# firewall-cmd --reload ##重新加载防火墙
success
去客户机测试一下能不能访问apache网站
安装LNMP架构(简易安装)
MariaDB数据库管理系统是mysql的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
安装数据库
yum install mariadb mariadb-server mariadb-libs mariadb-devel -y #安装数据库组件
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# netstat -natap | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15154/mysqld
配置数据库
[root@localhost ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we‘ll need the current
password for the root user. If you‘ve just installed MariaDB, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): ##按回车
Set root password? [Y/n] y ##是否设置密码
New password: #输入你的密码
Re-enter new password:
Remove anonymous users? [Y/n] y ##是否删除匿名用户,不删
Disallow root login remotely? [Y/n] n ##是否让root用户远程登录
Remove test database and access to it? [Y/n] n ##是否删除测试数据库
Reload privilege tables now? [Y/n] y ##是否加载里面的属性列表
安装php
yum -y install php
##建立php和mysql关联
yum install php-mysql -y
##安装php插件
yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
cd /var/www/html
vim index.php ##写上PHP网页
<?php
phpinfo();
?>
[root@localhost html]# systemctl restart httpd.service
用客户机去测试一下能不能访问到PHP
再开一台Linux作为Nginx处理静态请求
[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包
[root@localhost ~]# useradd -M -s /sbin/nologin nginx ##创建程序性用户
[root@localhost ~]# mkdir /chen ##创建挂载点
[root@localhost ~]# mount.cifs //192.168.100.23/LNMP /chen ##挂载
Password for root@//192.168.100.23/LNMP:
[root@localhost chen]# tar zxvf nginx-1.12.2.tar.gz -C /opt/ ##解压
[root@localhost chen]# cd /opt/
[root@localhost opt]# ls
nginx-1.12.2 rh
[root@localhost opt]# cd nginx-1.12.2/
[root@localhost nginx-1.12.2]# ls
auto CHANGES.ru configure html man src
CHANGES conf contrib LICENSE README
./configure ##安装组件
--prefix=/usr/local/nginx ##指定路径
--user=nginx ##指定用户
--group=nginx ##指定组
--with-http_stub_status_module ##状态统计模块
[root@localhost nginx-1.12.2]# make && make install ##编译
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##做软连接
[root@localhost nginx-1.12.2]# nginx -t ##检查语法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
写nginx脚本放在系统启动脚本中方便service管理器管理
[root@localhost nginx-1.12.2]# cd /etc/init.d/
[root@localhost init.d]# vim nginx
#!/bin/bash
#chkconfig: - 99 20 #注释信息
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" #这个变量,指向我的命令文件
PIDF="/usr/local/nginx/logs/nginx.pid" #这个变量,指向nginx的进程号
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
开启服务,并测试网页是否生效
[root@localhost init.d]# chmod +x nginx
[root@localhost init.d]# chkconfig --add nginx
[root@localhost init.d]# service nginx start
[root@localhost init.d]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17544/nginx: master
[root@localhost init.d]# systemctl stop firewalld.service
[root@localhost init.d]# setenforce 0
[root@localhost init.d]# yum install elinks -y
[root@localhost init.d]# elinks http://192.168.136.162/ ##测试网站有没有生效
在nginx配置文件中把动态的请求给Apache处理,174这台服务器
[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf
59 location ~ .php$ {
60 proxy_pass http://192.168.136.174; ##在sever这个区域,修改地址,把动态的请求转给174处理
61 }
[root@localhost init.d]# service nginx stop
[root@localhost init.d]# service nginx start
去客户机测试一下动态的请求和静态的请求,输入192.168.136.174/index.php
输入192.168.136.174/index.html
谢谢收看
以上是关于Apache和LNMP架构做动静分离的主要内容,如果未能解决你的问题,请参考以下文章
HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署