Apache 和 Nginx 说是当今最流行的两个 Web 服务器一点也不为过,Apache 用户基数大,稳定,兼容性高(比如jsp/php/cgi/python等等),但与 Ngnix 相比,Apache过于臃肿以及对静态文件响应过于缓慢让很多使用者感到头疼,而 Nginx 对于高并发性能出众,Proxy 功能强效率高,占用系统资源少。

但是 Nginx 也有劣势,它在处理 php 脚本时需要通过 php-fpm(FastCGI) 解析,而 php-fpm 不够稳定,经常出现 502 错误,生成相对复杂的页面没有优势,反而会使 php-cgi 进程变为僵尸进程。而 Apache 在高并发时对队列的处理比 FastCGI 更好,并且在处理动态 php 页面时,mod_php 模块也比 php-cgi 模块更稳定更高效。

事实上很多大型的网站都是采用 Nginx 前端 + Apache 后端的服务器架构,这样可以很好地结合了 Nginx 高并发和静态页面高效率以及 Apache 稳定的动态页面处理特点,再也不用担心 Nginx 以 FastCGI 模式运行 PHP 时的502问题和 Apache 处理静态页面过慢、负载过高的问题。

反向代理过程:

 Nginx前端,Apache后端过程其实很简单,首先用户访问的是80端口的nginx,然后nginx将静态内容留给自己,其余的转发给非80端口的apache,apache处理完毕后再回传给nginx。
  1. LMAP环境安装

    1.安装Apache
    
        # yum -y install httpd
    2.安装完成之后打开httpd的配置文件
        # vi /etc/httpd/conf/httpd.conf
    3.把ServerName前的#去掉,并修改为ServerName localhost 保存后启动httpd
        # service httpd start
    4.然后访问一下自己的服务器的ip会看到如下Apache的欢迎页

    5.安装MySQL
        #yum install -y mysql mysql-server
    6.安装完成以后启动mysql
        #service mysqld start
    7.结下来初始化mysql设置账号密码
        mysql> select user,host,password from mysql.user;  #查询mysql的user表mysql> drop user ''@localhost;mysql> update msyql.user set password = PASSWORD('your_password') where user="root"; #更改root密码mysql> flush privileges; #重新加载一下权限
    8.安装PHP
        # yum -y install php# yum -y install php-mysql
    9.安装以后重新启动Apache,之后在默认的网站根目录添加个phpinfo.php 文件测试下.
        # service httpd restart
    10.设置开机启动项
        # chkconfig httpd on# chkconfig mysqld on
    11.安装 Nginx 和 PHP-FPM(FastCGI)   !此步骤接上,为了避免冲突,先关闭 Apache:
        # service httpd stop
    12.默认情况下,CentOS 官方 rpm 源是没有 nginx 安装包的,需要手动添加,
        # cd /etc/yum.repos.d/# vi nginx.repo
    13.往 nginx.repo 文件里添加如下代码:
        [nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearchgpgcheck=0enabled=1
    14.保存后,即可开始安装 Nginx,
        # yum -y install nginx
    15.安装结束后,启动 Nginx,记得先关闭 Apache: service httpd stop,否则会出现冲突,
        # service nginx start
    16.浏览器访问一下会出现nginx的欢迎页面.17.接下来安装 php-fpm 并启动它,用来解析 PHP 脚本,
        # yum -y install php-fpm# service php-fpm start
    18.编辑 Nginx 的默认配置文件 default.conf,
        # vi /etc/nginx/conf.d/default.conf
    19. 把 default.conf 文件中 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 这一行下面的 # 注释去掉,并修改 root 后面的目录为:/usr/share/nginx/html;(此目录为 Nginx 的默认网站目录),修改 SCRIPT_FILENAME 后的参数为:$document_root$fastcgi_script_name; 修改结果如

    20.保存退出后,重启 Nginx,
        # service nginx restart
    21.同样nginx也在默认的页面写个phpinfo看一下

    22.注意红框内与上述通过 Apache 解析 phpinfo.php 的区别,此处显示,这里 phpinfo.php 文件是由 FPM/FastCGI 模块解析的。设置开机启动项
        # chkconfig nginx on# chkconfig php-fpm on
    23.至此,LNMP 环境安装完成!24.打开编辑 Nginx 的默认配置文件:
        # vi /etc/nginx/conf.d/default.conf
    25.注释掉之前 FastCGI 监听的配置,并添加如下代码:
        # proxy the PHP scripts to Apache listening on 127.0.0.1:8080location ~ \.php$ {proxy_pass    http://127.0.0.1:8080}
即当 Nginx 接收 http 请求遇到需要解析 php 脚本时,则交给 127.0.0.1:8080 端口来处理,而我们等下配置让 Apache 来监听处理这个端口发来的请求。
最终 Nginx 的配置文件 default.conf 如下,此处保留 Nginx 的默认网站目录 /var/share/nginx/html 不变,可自行修改。

26.接下来打开编辑 Apache 的配置文件:
        # vi /etc/httpd/conf/httpd.conf
27.找到 Listen 字段,并改为:Listen 127.0.0.1:8080,让 Apache 来监听这个端口,修改 Apache 的网站根目录为:”/usr/share/nginx/html”,与上述 Nginx 对应的网站目录保持一致,具体的修改细节如下加粗文字所示:
        Listen 127.0.0.1:8080...ServerName localhost...DocumentRoot "/usr/share/nginx/html"...<Directory "/usr/share/nginx/html">...</Directory>...
28.保存退出编辑,重启 Nginx 服务,并启动 Apache 服务,并确保这两个服务开机自启:
        # service nginx restart# service httpd start# chkconfig nginx on# chkconfig httpd on
29.借助于谷歌浏览器的工具我们可以发现,当浏览器向服务器发起 http://192.168.211.132/phpinfo.php 这个 HTTP 请求时,是由 Nginx 接收的,当 Nginx 发现需要处理 PHP 脚本时,则通过 127.0.0.1:8080 端口交给 Apache 处理,PHP 的输出信息也显示了 phpinfo.php 脚本正是由 Apache 2.0 Handler 解析处理的。30.至此,LNMP + Apache 架构配置完成!

ceonts6.8 nginx做前端代理apache做后端服务架构配置相关推荐

  1. Nginx做前端代理时缓存与否的性能差别

    Nginx做前端代理,后端两台apache upstream webservers {------------------定义在http段server 172.16.20.31 ;server 172 ...

  2. 了解一下:前端和后端哪个工资高?做前端好还是做后端好?

    前端和后端哪个工资高?事实上,两个都是属于技术研发岗位,都是高薪有前途的职业,不存在说哪个工资更高些,都基本在一万到五万之间,工资的差别主要体现在个人技术上.要问做前端好还是做后端好?其实无论做前端还 ...

  3. 前端和后端哪个工资高?做前端好还是做后端好?

    前端和后端哪个工资高?事实上,两个都是属于技术研发岗位,都是高薪有前途的职业,不存在说哪个工资更高些,都基本在一万到五万之间,工资的差别主要体现在个人技术上.要问做前端好还是做后端好?其实无论做前端还 ...

  4. 前端网页发布到nginx_通过nginx部署前端代码实现前后端分离

    实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不 ...

  5. 做前端有钱途还是后端有钱途?

    大家说了很多,我谈谈个人看法 这里不从技术难度来看,从工作性质和发展空间来讲. 首先后端的程序员,接触业务的广度和深度相对都比前端程序员要多.比如购买商品的环节,前端程序员要做的是两个事情:一.点击购 ...

  6. 13. nginx四层 https代理https 前后端证书配置

    使用情况 1.https代理https服务,后端与前端非同一证书. 2.想使用nginx代理来颁发合法新证书. 前提条件 准备后端证书且要与后端服务使用相同证书 准备前端证书. vim /etc/ng ...

  7. 程序员做前端好还是做后台好?

    从事嵌入式开发多年,最近在做后台相关相关的开发,现在很多程序员在学校或者入行之前都会考虑是选择前端开发还后台研发,很多女生或者基础不是很好的学生一般会选择前端开发,现在的前端算是比较火,也是很多培训机 ...

  8. mysql做前端_MySQL 还可以这样做

    多个字段唯一性如何处理? 情景 有张表,表里有多个字段需要唯一,不能重复,否则就是重复数据,插不进去 传统做法 直接给多个字段直接加唯一索引,简单粗暴 现在做法 新增一个字段,这个字段加唯一索引,这样 ...

  9. Nginx (一) Nginx介绍 正向代理 反向代理 及配置

    目录 介绍Nginx Nginx处理高并发 正向代理 正向代理配置 反向代理 反向代理配置 介绍Nginx Nginx是一款自由的.开源的.高性能的HTTP服务器和 反向代理 服务器:同时也是一个IM ...

最新文章

  1. 2台xenserver组成的资源池开启HA存在的问题
  2. centOS下安装tomcat详解
  3. C++静态库与动态库(转)
  4. TransactionScope 事务使用说明
  5. http抓包实践--(五)-常用的操作
  6. 华为 linux网络工程师待遇,华为网络工程师待遇如何?
  7. CE修改器修改游戏数据实例
  8. 新买的电脑 Windows10/Windows11即将过期怎么办
  9. 地学计算方法/地统计学(第四章变异函数理论模型)
  10. 朋友,我真诚的劝你别网贷
  11. VR广告:通过“虚拟房间”广告在VR中体验Lionsgate的JIGSAW
  12. 支持语音记事的便签怎么将声音文件转文字保存
  13. 本地直播平台的搭建—四种方式
  14. 2020年强烈推荐 ,小友必须要看面经的面试题!!
  15. ASP.NET:母版页与内容页
  16. Windows系统:开始--运行--命令大全
  17. 英文写作:讨论的中文逻辑是什么?讨论怎么写?
  18. Dropbox VS 华为网盘
  19. 一对一直播软件源码开发,直播相关技术详解
  20. Bootstrap优秀模板-Unify.2.6.2

热门文章

  1. 华硕rt-n16无线打印服务器,华硕无线路由器RT-N16解决无线信号难题
  2. 利用D3.js快速绘制力导向图
  3. 2022-2028全球及中国电子商务欺诈预防行业研究及十四五规划分析报告
  4. 论文阅读:A Taxonomy and Evaluation of Dense Light Field Depth Estimation Algorithms
  5. c++ 虚函数多态、纯虚函数、虚函数表指针、虚基类表指针详解
  6. 关于我计划开始学习编程这码事
  7. 【微信小程序】去水印小程序源码,微信和QQ小程序都能用!
  8. 学生成绩预测模型_逻辑回归实战练习——根据学生成绩预测是否被录取
  9. winhex 13.5注册版
  10. Windows CE操作系统的触摸屏驱动程序模型