linux+apache+nginx实现,反向代理动静分离

在我们开发的过程中,一定会遇到,负载均衡方面的问题。下面我们,做一个小例子:使用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服务器响应的。

是不是很神奇!!!

原文地址:https://www.cnblogs.com/573734817pc/p/10122441.html

时间: 2024-11-06 12:24:02

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

Linux安装Nginx使用反向代理

nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)1.实验环境准备准备2个服务器,都安装好nginx软件nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点)nginx2 192.168.13.24 作为反向代理服务器(黄牛)    用户通过浏览器去访问   黄牛 (代理)浏览器访问192.168.13.24 > 192.168.13.79 2.在反向代理服务器中添加配置nginx负载均衡集群的概念:一堆服务器做一件事 原文地址:https://www.

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理/动静分离

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理 新建两个docker容器 docker run -it --name Tomcat-mysql -v /mnt:/mnt -p 8866:80 -p 33006:3306 ubuntu /bin/bash docker run -itd --name webserver -p 8888:80 -v /mnt/:/mnt/ ubuntu /bin/bash [email protected]:~# docker

linux 安装 nginx 及反向代理配置

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,以下为Linux centos平台下安装nginx并配置反向代理的过程(采用源码安装的方式) 一:安装编译环境gcc g++ 和make(用于编译源代码成可执行文件) 1yum install gcc gcc-c++ 2 yum -y install gcc automake autoconf libtool make 二:安装pcre (nginx rewrite依赖pcre库)zlib(用于gzip压缩)

LInux中Nginx+nodejs 反向代理

一台服务器架设多个 nodejs 网站的拓扑结构 Nginx 的安装 1.安装 nginx 源 sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 2.查看 Nginx 源是否配置成功 通过 yum search nginx 看看是否已经添加源成功.如果成功则执行下列命令安装 Nginx. 或者 npm info nginx 也可以看看 n

夺命雷公狗---linux NO:39 linux下nginx的反向代理

反向代理图如下所示: 由上图可见,我们的服务器其实是分了两台,一台专门存放  php   之类的源码程序的,另外一台是专门存放图片用的服务器,由于图片在服务器A不存在,所以可能导致如下显示: 看不到这是很正常的,因为服务器A下没有这图片,图片在服务器B下: 所以我们要更改一下服务器A的配置文件: 然后我们开始为服务器添加一段反向代理的代码: location ~ \.(jpg|jpeg|png|gif)$ { proxy_pass http://192.168.8.166:80; } 然后保存退

夺命雷公狗---linux NO:40 linux下nginx的反向代理的日志修正

我们如果只是纯粹使用了反向代理,那么服务器B的日志则会出现了问题: 我们服务器A是192.168.155  去访问了服务器B的/logo.png  ,这当然也没错,原理图如下所示: 但是我们往往都是需要知道是从客户端的真实IP,而不是服务器A发送来的IP,因为这样会更加方便运维和推广人员统计数据等... 首先我们改一下服务器A的配置文件: location ~ \.(jpg|jpeg|png|gif)$ { proxy_set_header X-Forwarded-For $remote_add

Nginx 反向代理 动静分离

1.实验环境:机器10.0.10.8  Nginx proxy10.0.10.12 Nginx静态10.0.10.10 Ngins动态,LNMP平台,有个Tomcat服务系统版本和内核# cat /etc/redhat-release CentOS release 6.6 (Final)# uname -r2.6.32-504.3.3.el6.x86_64 2.Nginx静态服务器的配置文件# cat /application/nginx/conf/nginx.confworker_proces

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

在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php 文件,客户端发来的请求首先发送给 nginx 服务器,如果发送请求的是 .php 文件,则把请求通过 proxy pass 转发给 apache 服务器,apache 服务器处理后把结果返回给 nginx 服务器,nginx 服务再把结果返回给客户端.该例中 nginx 服务器实现了反向代理,或者

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx