当前位置: 首页 > news >正文

Nginx反向代理到apache

构想:Apache负责php页面,nginx负责视频文件等静态页面

单台服务器,目前只有一个ip,那就采用不同的端口号,apache监听80端口,基本上不需要改变什么,只需要把视频文件拷贝到nginx下面的文件下,然后开启反向代理功能,反向代理就是:此模块能代理请求到其它服务器. 也就是把视频文件反向代理到apache下面:


1:开启反向代理服务

反向到80端口

还可以添加下列参数:

proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header REMOTE-HOST $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


⑵监听8888端口



可以参考一篇很不错的类似文章:http://liuyu.blog.51cto.com/183345/166381

***********************************************************************

Nginx反向到apache可能会出现的问题:

⑴第一获得真实ip会一直都是nginx的:

Apache端:

#vim httpd.conf

LoadModule rpaf_module  modules/mod_rpaf-2.0.so

#vim httpd-vhosts.conf

在虚拟主机里加上

RPAFenable On

RPAFproxy_ips 192.168.1.100

RPAFsethostname On

RPAFheader X-Forwarded-For

Nginx端已经在proxy.conf里定义了

详细解决办法参考;http://windphp.com/unix/52.html 

⑵session丢失

Nginx简单轮训会导致session丢失,面对这种问题,一种可以将nginx调度算法换为ip_hash,这样负载的作用将没有意义,另一种可将session存在memcache…..

#vim /usr/local/php/lib/php.ini

修改为

session.save_handler = memcache

session.save_path = "tcp://IP:11211"

*************************************************

Hostsliunxwin下面都有,主要功能就是把域名定向到指定ip上,并且程序里面的出现域名的地方也会指向指定ip. 

Win下面:C:\WINDOWS\system32\drivers\etc\HOSTS

Liunx下面:etc/hosts

======================================================

只要保证nginx和apache两端口不冲突两服务器就可以并存

 【对以上不足的补充】

一个典型的 Nginx + Apache 应用方案可以是Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口。Proxy 反向代理的好处是访问的时候,始终就是 80端口,来访者不会觉察到有任何的区别。

但有的应用确非常“聪明”,识别到 Apache 所位于的端口是 8080 ,就会把相关的超链接都一并加上 :8080 的后续。这么就死定了,还能有正常访问麽?!有个方法可以解决这事,就是把 apache 也运行在80端口上。
同一台服务器,有Nginx 也有 Apache,2个httpd服务,都是80,不会冲突麽?

下边就是举例方法。
Nginx.conf 的配置中
server {
listen 80;
server_name www.ABC.com;

root /var/www

}
修改一下。
server {
listen 公网IP123.123.123.123:80; #指定Nginx只占用某个IP的80端口。#如果你服务器中有多个IP,还可以指定多个。
server_name www.ABC.com;
}
如果你在Nginx有多个虚拟主机,每一个都需要这么修改。

-----------------------------------------------------------------------------------------------------------------
然后轮到 apache 的 httpd.conf
把原来的
Listen 80
改为
Listen 127.0.0.1:80
跟Nginx一样,指定apache所占用的IP及端口。
保存退出,重启apache即可生效。
如果你 apache 上也有多个虚拟主机。无需好像Nginx那样逐一修改,只要都是 80 端口既可。
如:
NameVirtualHost *:80
ServerAdmin hello@abc.com
DocumentRoot /var/www/admin
ServerName admin.ABC.com
老李批注:这里用管理后台域名绑定后台目录,类似manager.***.com

(这样,恐怕apache只能通过http://127.0.0.1:80才能访问,那么他还占用80端口就没有意义了。还不如apache用8080,nginx用80算了。没有认真看,有“聪明” 的应用检测到apache使用的是8080端口,会把应用里头所有的超链接都加上:8080结尾,为了解决该问题,所以才有这一文。而且多数服务器都具备2张网卡,除了把apache绑定在 127.0.0.1 还能绑定另外一张网卡的IP,这么问题就解决。)

这样,Nginx 跟 Apache 就仅会占用指定IP的80端口,不会冲突。
只要调整一下 Nginx proxy 的参数。
“聪明”应用问题就能解决了。

相关文章:

  • Nginx负载均衡如何进行配置
  • 网站上线之前需要检查的13个问题
  • php实现文件上传进度条
  • PHP程序员突破成长瓶颈
  • LINUX常用命令(基础)
  • 面向对象的理解
  • 网站开发的技术和思想的思考
  • chkrootkit安装配置教程 – Linux后门入侵检测
  • 如何在win系统下安装树莓派的系统到SD卡(菜鸟教程一)
  • 树莓派自动连接无线
  • 树莓派(Raspberry Pi)USB无线网卡自动连接
  • thinksns开源微博系统 V3上传漏洞
  • dedecms好友描述修改和会员中心收藏删除均存在sql注入漏洞
  • 易想(easethink)团购系统ajax文件导致SQL注入漏洞
  • kesioncms (科讯cms) 6.x-8.x版本写入任意内容文件漏洞
  • 《剑指offer》分解让复杂问题更简单
  • Android Volley源码解析
  • Angularjs之国际化
  • Consul Config 使用Git做版本控制的实现
  • 简单数学运算程序(不定期更新)
  • 硬币翻转问题,区间操作
  • 怎么把视频里的音乐提取出来
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​虚拟化系列介绍(十)
  • "无招胜有招"nbsp;史上最全的互…
  • $jQuery 重写Alert样式方法
  • (6)设计一个TimeMap
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (windows2012共享文件夹和防火墙设置
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (正则)提取页面里的img标签
  • (转)linux下的时间函数使用
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ../depcomp: line 571: exec: g++: not found
  • ./configure、make、make install 命令
  • .apk文件,IIS不支持下载解决
  • .Net Redis的秒杀Dome和异步执行
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net的socket示例
  • .NET分布式缓存Memcached从入门到实战
  • .Net各种迷惑命名解释
  • .NET下ASPX编程的几个小问题
  • .Net中ListT 泛型转成DataTable、DataSet
  • @DataRedisTest测试redis从未如此丝滑
  • [Asp.net mvc]国际化
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [c#基础]DataTable的Select方法
  • [C++]拼图游戏