nginx与apache配合反向代理技术2
注意,上次我们只是简单的在同一台服务器模拟搭建了一个新的http服务器(启用了8080端口),使用的是apache,从而模拟了多台服务器实现的Nginx反向代理,通过Nginx向上游代理服务器发送请求。
这一次对Nginx反向代理做出具体的配置,按照《Mastering Nginx》推荐
首先
sudo su //root模式
cd /etc/nginx/
touch ./proxy.conf //新建一个单独的代理配置
vim ./proxy.conf
如下:
#Mastering Nginx
#关闭重定向
proxy_redirect off;
#传递给上游服务器用户头信息
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#不是严格的代理模块指令,如果设置的太低,将不能上传文件到上游服务器
#注意上传文件大小要大于文件系统文件大小
client_max_body_size 10m; client_body_buffer_size 128k;
#Nginx等待时间
proxy_connect_timeout ;
#Nginx与上游服务器两次操作成功等待时间
proxy_send_timeout ;
proxy_read_timeout ;
#这些缓冲控制了Nginx如何快速响应用户请求
proxy_buffer_size 4k;
proxy_buffers 32k;
proxy_busy_buffers_size 64k;
#控制worker进程阻塞后台数据的时间,值越大,处理阻塞时间越长
proxy_temp_file_write_size 64k;
然后
vim ./sites-available/default //编辑默认站点配置文件
location ~ ^/apache {
include proxy.conf;
proxy_pass http://localhost:8080;
}
service nginx reload //重读nginx
注意:如果nginx reload提示failed,请查看/var/log/nginx/error.log错误日志!
接下来尝试把上游服务器作为uploads目录,专门存放用户上传的文件。
vim /etc/nginx/sites-available/default
include proxy.conf;
location /uploads {
client_max_body_size 500m;
proxy_connect_timeout ;
proxy_send_timeout ;
proxy_read_timeout ;
proxy_pass http://localhost:8080;
} location / {
index index.htm index.html index.php;
#如果文件不存在则尝试TP解析
#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if (!-e $request_filename)
{
#地址作为将参数rewrite到index.php上。
rewrite ^/(.*)$ /index.php/$;
}
}
注意把proxy.conf包含在location外部,然后内部覆盖原有的配置,否则会提示“directive is duplicate”。
再次访问:www.gxy.gift/uploads
apache将会代理存储文件的访问
接下来讲解反向代理中结合try_files使用技巧:
在《Mastering Nginx》一书中提到这段代码的作用:
location / {
try_files $uri @apache;
} location @apache {
proxy_pass http://localhost:8080;
}
这段配置非常简单,简单说:请求发送给Nginx服务器后,按照请求的文件或者路由活取nginx的文件,从而呈现出静态页面,但是如果Nginx找不到这样的地址文件或者无法路由,就会把地址直接丢给上游的@apache
总结:所谓web反向代理服务,要注意代理服务器使用过程中是直接把域名后面的这一段请求,也就是$uri发送到上游服务器,在这儿是apache,相当于用户直接请求了apache服务器的效果,如果apache服务器也不能处理这段请求,那么将会显示apache的not found提示。
nginx与apache配合反向代理技术2的更多相关文章
- nginx与apache配合反向代理技术1
序:最近在看Dimitri Aivaliotis的<Mastering Nginx>,刚好跆拳道课下班在路上看了反向代理服务器,准备在自己的博客VPS尝试一下 web代理服务器可以实现分布 ...
- Nginx或Apache通过反向代理配置wss服务
nginx配置参考 前提条件及准备工作: 1.假设ws服务监听的是8282端口(websocket协议) 2.已经申请了证书(pem/crt文件及key文件)放在了/etc/nginx/conf.d/ ...
- 使用nginx和tomcat配置反向代理和动静分离
背景 本人主修的编程语言是Java语言,因此最开始接触的Web开发也是JSP技术.使用Java开发的Web应用需要部署在专门的服务器程序上运行,比如Tomcat.但是一般很少会有人将Tomcat作为用 ...
- 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步
一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...
- APACHE 与IIS同时存在的情况下,给APACHE添加反向代理 共用80端口
一.首先打开IIS,将IIS的端口改成81,不要让IIS占用了80端口 二.打开APACHE的httpd.conf配置文件,将里面的端口配置成80 三.打开APACHE的虚拟目录配置文件,如:http ...
- apache做反向代理
实验目的 通过apache实现反向代理的功能,类似nginx反向代理和haproxy反向代理 环境准备 逻辑架构如下 前端是apche服务器,监听80端口,后端有两台web服务器,分别是node1和n ...
- Nginx插件之openresty反向代理和日志滚动配置案例
Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...
- 【架构师之路】Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用 ...
- Apache 如何反向代理tomcat并且实现Session保持
简介 LAMT=Linux+Apache+MySQL+Tomcat: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器: 在中小型系统和并发访问用户不是很多的场合下 ...
随机推荐
- ps-图像的符合
1.将所需要的背景和素材添加到同一个画布中 2.选择素材图层---工具栏---修复画笔工具-----alt+左键,在素材上进行定位 3.切换到背景图层 4.按住鼠标左键并在合适位置进行拖动, 5.松开 ...
- SolrCloud的介绍
SolrCloud(solr云)是Solr提供的分布式搜索方案. 当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud. 当索引量很大,搜索请求并发很高时,同样需要使用SolrClou ...
- css-dialog样式实现弹框蒙层全屏无需JS计算高度兼容IE7
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title> ...
- httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接
PoolingHttpClientConnectionManager是一个HttpClientConnection的连接池,可以为多线程提供并发请求服务.主要作用就是分配连接,回收连接等.同一个rou ...
- OpenStack_Glance
什么是Glace Glance即image service(镜像服务),就是为创建虚拟机提供镜像的地方 为什么要有Glance 这个问题问的好,openstack就是构建Iaas平台对外提供虚拟机的啊 ...
- underscore.js,js工具库
官方文档:http://underscorejs.org/ var totalCheckPriceVal = _.reduce(tableData[0],function(memo,num){ var ...
- Appium和Robotium在文字输入上的区别
Appium和Robotium在文字输入上的区别 Appium和Robotium在对文本框进行输入时有一定的区别: Appium在输入文字时需要调用系统键盘 Robotium在输入文字是根本不需要 ...
- 手机自动化测试:appium源码分析之bootstrap十一
手机自动化测试:appium源码分析之bootstrap十一 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- Oracle常用数据字典
1.查看所有存储过程.索引.表格.PACKAGE.PACKAGE BODY select * from user_objects; 2.查询所有的Job select * from user_jobs ...
- ReactJS入门2:组件状态
React组件可以简单看做是包含props和states的函数. 上一节总结了创建新组建和数据属性的传递.本节主要讲解组件的状态. React认为UI是不同状态的展现.在React中,开发者只需更新组 ...