您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

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

时间:2019-12-25 10:44:52  来源:  作者:

一、linux介绍:

Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

二、动静分离概述

1.Nginx的静态处理能力比较强,但是动态处理能力不足,因此在企业中常采用动静分离技术

2.在LNMP架构中,静态页面交给Nginx处理,动态页面交给php-FPM模块处理。在动静分离技术中动态页面交给Apache处理

3.Nginx不仅能作为web服务器,还具有方向代理、负载均衡和缓存的功能

4.Nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的

5.Nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够根据URL、客户参数或者其他的处理逻辑将用户请求调度至上游服务器

6.动静分离技术我们需要做一台LAMP平台服务器处理动态请求和一台Nginx处理静态请求,将对php页面的请求转发给LAMP处理,将静态页面的请求交给Nginx处理

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

 

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

 

三、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

apache php!;

?>

#重启apache服务

service httpd stop

service httpd start

验证LAMP平台服务

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

四、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服务

Linux系统架构-----Apache与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;

}

验证动静分离

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


Tags:Apache Nginx   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Apache与Nginx的优缺点比较1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高...【详细内容】
2020-01-07  Tags: Apache Nginx  点击:(64)  评论:(0)  加入收藏
一、Linux介绍:Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并...【详细内容】
2019-12-25  Tags: Apache Nginx  点击:(114)  评论:(0)  加入收藏
1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低...【详细内容】
2019-08-02  Tags: Apache Nginx  点击:(226)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条