在我们开发的过程中,一定会遇到,负载均衡方面的问题。下面我们,做一个小例子:使用nginx+apache实现反向代理,动静分离。

这里apache、php、nginx的安装就不做赘述了,不懂的朋友可以看看我其他的文章,或者去百度搜索了解一下。

现在,我们的电脑上有apache、nginx、php,其中php为apache服务。

我们想要实现的是,当请求发送到nginx的时候,nginx会去判断是不是php请求,如果是,那么将php请求反向分发给apache服务器。

其实,我们利用nginx要实现上面的功能,很简单,只需要在nginx.conf配置文件中,加上下面配置就行。(红色部分代码)

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}
location ~ \.php$ {
proxy_pass http://111.231.226.228:8080;             #我用的是云服务器,大家如果是本地虚拟机的话,就配置自己的ip+apache的监听端口号
}

#error_page 404 /404.html;

然后重启nginx:./sbin/nginx -s reload    (我的/sbin目录是位于nginx安装目录下的/usr/local/nginx)

接下来就是对apache进行配置了。

首先,配置httpd.conf,以下几个地方是需要配置的。

其次,配置httpd-vhosts.conf

现在,我们来看效果。

我们先把,我们刚才写的nginx反向代理配置注释掉,看访问nginx下的php请求,会是什么效果。

我们在nginx的html目录下,写了一段简单的php代码

<?php
echo '123';
?>
<img src="./test.jpg" />

现在,我们打开我们设置的nginx反向代理,看以下效果。

重启nginx:/usr/local/nginx/sbin/nginx -s reload

我们可以看到请求成功了。

至此,我们的这个nginx+apache实现方向代理,动静分离的小实验就成功的结束了。

下面我们可以看一下,nginx和apache的access.logs文件。

nginx的access log

apache的access log

从上面的log文件中,我们可以清晰的看到,html的image请求,是nginx http服务器响应的,而我们的php请求是apache http服务器响应的。

是不是很神奇!!!

linux+apache+nginx实现,反向代理动静分离的更多相关文章

  1. [nginx] - 使用nginx实现反向代理,动静分离,负载均衡,session共享

    反向代理概念 先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件才能访问youtube. FQ软件就叫做正向代理.所谓的反向代理,指的是用户要访问youtube ...

  2. Linux安装Nginx使用反向代理

    nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)1.实验环境准备准备2个服务器,都安装好nginx软件nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点) ...

  3. linux 安装 nginx 及反向代理配置

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,以下为Linux centos平台下安装nginx并配置反向代理的过程(采用源码安装的方式) 一:安装 ...

  4. linux下nginx【反向代理】配置【负载均衡】配置

    nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...

  5. linux 部署nginx作为反向代理入口的内核参数/etc/sysctl.conf

    # Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enable ...

  6. linux系统nginx下反向代理解析二级目录泛目录教程

    解析规则1:     location /目录名 {           proxy_pass http://ip/目录名;           } 解析规则2:  location /目录名{    ...

  7. Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

    在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...

  8. 前nginx后Apache+Node反向代理

    前几天一直在被一个问题困扰,机器上跑的站点太多了,Apache上面有十几个,NodeJS的也有一堆,记端口号都要烦死,于是萌生了使用反向代理的想法.出发点貌似太low了,完全不是出于负载均衡.高并发什 ...

  9. Linux - Nginx配置反向代理。

    Nginx配置反向代理. 准备两台服务器 http://192.168.70.66 http://192.168.70.62 设置正则匹配(192.168.70.66) vim /usr/local/ ...

随机推荐

  1. [sh]basename&dirname截取路径和文件名&case参数选项

    给出全路径,取出路径和文件名 basename使用示例 http://codingstandards.iteye.com/blog/840784 示例一 [root@web ~]# basename ...

  2. configure.in详解

    configure.in文件里基本的内容就是一系列的m4宏,在运行时根据传递给它们的参数,定义的宏就会扩展为shell的脚本代码段.也可以手工书写shell代码.不过我们就不说这个了,要想完全的理解c ...

  3. 【Linux】-NO.5.Linux.1.CentOS.1.001-【CentOS7 Foundation Configuration】-

    1.0.0 Summary Tittle:[Linux]-NO.5.Linux.1.CentOS.1.001-[CentOS7 Foundation Configuration]- Style:Lin ...

  4. sync修饰符的简易说明

    其实这个就说的很好了. sync会自动更新父组件的数据 原本valuechild 的值是222,父页面显示的222,把值传递给子组件 子组件也显示的222, 我点击子组件的按钮 把333传递给父组件, ...

  5. 开启Laravel之旅的标准姿势

    1.github下载最新的laravel https://github.com/laravel/laravel 2.下载到本地,改名,composer install,安装项目的依赖包 compose ...

  6. python简单的ftp程序

    服务器端 '''1.读取文件名2.检测文件是否存在3.打开文件4.检测文件大小5.发送文件大小给客户端6.等客户端确认7.开始边读边发数据8.发送md5'''import socket,os,time ...

  7. python one

    哈哈,今天把它搞了 谁? Python啊! ..... *************************************** python:解释性语言,功能很强大,现在很有市场! & ...

  8. webpack 解决跨域问题

    一.webpack 内置了 http-proxy-middleware 可以解决 请求的 URL 代理的问题 安装:npm install --save http-proxy-middleware 二 ...

  9. 001-http协议-请求报文以及服务器响应状态

    Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...

  10. NHibernate之旅系列文章导航

    NHibernate之旅系列文章导航 宣传语 NHibernate.NHibernate教程.NHibernate入门.NHibernate下载.NHibernate教程中文版.NHibernate实 ...