Linux系统架构-----Apache与Nginx动静分离

一.动静分离概述

  • Nginx的静态处理能力比较强,但是动态处理能力不足,因此在企业中常采用动静分离技术
  • 在LNMP架构中,静态页面交给Nginx处理,动态页面交给PHP-FPM模块处理。在动静分离技术中动态页面交给Apache处理
  • Nginx不仅能作为web服务器,还具有方向代理、负载均衡和缓存的功能
  • Nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的
  • Nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够根据URL、客户参数或者其他的处理逻辑将用户请求调度至上游服务器
  • 动静分离技术我们需要做一台LAMP平台服务器处理动态请求和一台Nginx处理静态请求,将对php页面的请求转发给LAMP处理,将静态页面的请求交给Nginx处理

LAMP服务器 Nginx服务器
192.168.43.221 192.168.43..211

二.Server1安装LAMP

  • 安装apache服务
tar xf apr-1.6.2.tar.gz -C /opt
tar xf apr-util-1.6.0.tar.gz -C /opt
tar xf httpd-2.4.29.tar.gz -C /opt


mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
//expat-devel支持xml的组件

cd /opt/httpd-2.4.29

./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

//prefix安装路径
//enable-so启用核心模块
//rewrite重写功能
//charset-lite字符集
//cgi通用网关接口

make && make install

//apache服务的主配置文件httpd.conf和启动脚本apachectl

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd

# chkconfig: 35 85 21  //35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server

chkconfig --add httpd //将httpd加入到SERVICE管理器

//编辑主配置文件
vim /usr/local/httpd/conf/httpd.conf
ServerName www.kgc.com:80
Listen 192.168.43.221:80
#Listen 80


//优化主配置文件和启动脚本,便于系统识别
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

#关闭防火墙,开启服务
systemctl stop firewalld.service
setenforce 0
service httpd start
netstat -anpt | grep 80
  • 安装mysql服务
//解压
tar xzvf mysql-5.6.26.tar.gz -C /opt

//安装必要环境包
//cmake安装mysql
yum install -y ncurses-devel autoconf cmake



cd /opt/mysql-5.6.26
//DCMAKE_INSTALL_PREFIX指定路径
//DDEFAULT_CHARSET字符集
//DDEFAULT_COLLATION通用字符集
//DEXTRA_CHARSETS扩展字符集
//DSYSCONFIDIR配置文件的目录
//DMYSQL_DATADIR数据文件目录
//DMYSQL_UNIX_ADDR通信文件,定义连接数据库的文件,服务启动之后才会生成文件

cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

make && make install

// 覆盖本机的数据库,和前面的配置文件的目录一致
cp support-files/my-default.cnf /etc/my.cnf

//启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
//给予权限
chmod 755 /etc/init.d/mysqld       
chkconfig --add /etc/init.d/mysqld
chkconfig  mysqld --level 35 on

//设置环境变量,将启动脚本放到系统中
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
echo $PATH

//添加用户
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/

//初始化数据库,之前必须创建用户
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql


ln -s /var/lib/mysql/mysql.sock  /home/mysql/mysql.sock

//修改启动脚本
vim  /etc/init.d/mysqld

//指明工作路径
basedir=/usr/local/mysql   
//数据存放位置  
datadir=/home/mysql

service mysqld start
//mysql服务3306端口
netstat -anpt | grep 3306

//mysql用户创建密码
mysqladmin -u root -p password "abc123" //给mysql账号设置密码
  • 安装php编辑语言
tar xjvf php-5.6.11.tar.bz2 -C /opt

//gd库php处理图片的扩展库,提供api接口
//libpng图片,libxml文件格式
yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel


cd /opt/php-5.6.11

//gd图片库
//zlib支持压缩
//mbstring支持字符串
// /usr/local/mysql php的配置文件
//--with-apxs2,设置
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring 

make && make install

//生成主配置文件php.ini
cp php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/

vim /etc/httpd.conf //在合适位置新增,使apache支持php

//支持php和php源码文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html

//必须在apache中有php5的模块
cd /usr/local/httpd/htdocs

mv index.html index.php

vim /usr/local/httpd/htdocs/index.php
<?php
echo "apache php!"
?>
#重启apache服务
 service httpd stop
 service httpd start 
  • 验证LAMP平台服务

三.Server2安装Nginx

  • 安装nginx
yum install vsftpd -y      //安装ftp服务
systemctl start vsftpd      //开启ftp服务
 #使用wget工具从官网上下载nginx压缩包
wget http://nginx.org/download/nginx-1.12.6.tar.gz
#解压
tar zxvf nginx-1.12.2.tar.gz -C /opt
#安装环境包
yum install gcc gcc-c++ pcre* zlib-devel make -y
#创建用户,不建立宿主文件,且不能再shell上登录
useradd -M -s /sbin/nologin nginx
#配置,安装且编译
cd /opt/nginx-1.12.2/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#nigix运行的用户和组都为nginx
#启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息

make && make install

#在Nginx服务器(192.168.43.211)上创建一个test.html文件,作为静态页面

echo "<h1>nginx html</h1>" > /usr/local/nginx/html/test.html

#为主程序nginx创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

nginx -t	           //检查
nginx	           //启动
killall -1 nginx     //重启
killall -3 nginx     //停止
#关闭防火墙,开启服务
nginx
systemctl stop firewalld
setenforce 0
  • 验证nginx服务

四.动静分离

  • 修改Nginx服务器(192.168.43.211)上的配置文件,将访问PHP文件的请求(192.168.43.211/index.php)转发到LAMP服务器上(192.168.43.221)
vim /usr/local/nginx/conf/nginx.conf
 
location ~ \.php$ {
            proxy_pass   http://192.168.43.221;
        }
  • 验证动静分离

发布了94 篇原创文章 · 获赞 108 · 访问量 6398

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/103664701