2013-05-13 23:21 2730人阅读 评论(0) 收藏 举报

从昨天就开始纠结了,在做实验的时候,遇到目录访问的问题,如下

前端nginx vhost的设置如下,代理访问后端的192.168.0.37

server
{
listen 80;
server_name www.proxy.com;
index index.php index.html index.htm; location /test/ {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://192.168.0.37;
proxy_set_header Host 192.168.0.37;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect http://192.168.0.37/test/ /test/;
} access_log /data/logs/weblog/proxy_server.access.log;
}

后端的192.168.0.37在根目录下是有test目录的,该目录下有个index文件,内容为“192.168.0.37 proxy test OK!”

现在的问题是如果在访问www.proxy.com/test/的时候是可以访问的,如下

  1. [root@control_node ~]# curl -I http://www.proxy.com/test/
  2. HTTP/1.1 200 OK
  3. Server: nginx
  4. Date: Wed, 24 Apr 2013 04:22:40 GMT
  5. Content-Type: text/html; charset=utf-8
  6. Content-Length: 28
  7. Connection: keep-alive
  8. Last-Modified: Wed, 24 Apr 2013 03:09:13 GMT
  9. Accept-Ranges: bytes

但是如果访问www.proxy.com/test的话就会301

  1. [root@control_node ~]# curl -I http://www.proxy.com/test
  2. HTTP/1.1 301 Moved Permanently
  3. Server: nginx
  4. Date: Wed, 24 Apr 2013 04:25:01 GMT
  5. Content-Type: text/html
  6. Content-Length: 178
  7. Location: http://www.proxy.com/test/
  8. Connection: keep-alive

我刚开始以为是我前端的proxy_redirect设置有问题,后来修改proxy_redirect多次,均无法达到要求,最后突发奇想,把前端的nginx设成了这样

  1. server
  2. {
  3. listen  80;
  4. server_name  www.proxy.com;
  5. index index.php index.html index.htm;
  6. location /test {
  7. proxy_next_upstream http_502 http_504 error timeout invalid_header;
  8. proxy_pass http://192.168.0.37/test/;
  9. proxy_set_header Host 192.168.0.37;
  10. proxy_set_header X-Forwarded-For $remote_addr;
  11. #proxy_redirect http://192.168.0.37/test/ /test/;
  12. }
  13. location / {
  14. proxy_next_upstream http_502 http_504 error timeout invalid_header;
  15. proxy_pass http://192.168.0.37/;
  16. proxy_set_header Host 192.168.0.37;
  17. proxy_set_header X-Forwarded-For $remote_addr;
  18. }
  19. access_log /data/logs/weblog/proxy_server.access.log;
  20. }

这样的话,访问www.proxy.com/test就没问题了

  1. [root@control_node vhosts]# curl www.proxy.com/test
  2. 192.168.0.37 proxy test OK!

Nginx反向代理的目录访问问题的更多相关文章

  1. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  2. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  3. Nginx反向代理实现IP访问分流

    通过Nginx做反向代理来实现分流,以减轻服务器的负载和压力是比较常见的一种服务器部署架构.本文将分享一个如何根据来路IP来进行分流的方法. 根据特定IP来实现分流 将IP地址的最后一段最后一位为0或 ...

  4. nginx反向代理带路径访问问题

    nginx的配置为192.168.0.219:80分别映射到upstream组192.168.0.55:8080和192.168.0.206:8080,那如何配置做到访问192.168.0.219:8 ...

  5. nginx反向代理时配置访问密码

    在有些情况下,我们需要对服务器上的某些资源进行限流或者禁止陌生人访问,我们可以通过nginx配置来对url添加访问密码. 效果如下 nginx 开启访问验证在 nginx 下,提供了 ngx_http ...

  6. nginx 反向代理到目录

    upstream yg{ server 127.0.0.x; } server { listen 80; server_name www.hikaru.pw; location / { rewrite ...

  7. nginx 反向代理学习

    目录 nginx 反向代理学习 一.正向代理和反向代理的区别 1.1正向代理 1.2 反向代理 二.nginx反向代理的使用 nginx 反向代理学习 一.正向代理和反向代理的区别 正向代理代理客户端 ...

  8. 实战 | 一文带你读懂Nginx反向代理

    一个执着于技术的公众号 前言 在前面的章节中,我们已经学习了nginx基础知识: 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文 ...

  9. nginx反向代理tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题

    问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...

随机推荐

  1. 将Image转化为BufferImage

    public class BufferedImageBuilder { private static final int DEFAULT_IMAGE_TYPE = BufferedImage.TYPE ...

  2. 转-JS中document对象详解

    对象属性 document.title //设置文档标题等价于HTML的<title>标签 document.bgColor //设置页面背景色 document.fgColor //设置 ...

  3. Qt学习思考

    对各个部件基本了解,初步理解GUI应用程序的创建 2D图形文字绘制,3D图形(openGL)等 模型/视图框架编程,处理复杂的数据 多媒体框架 数据库,xml,文件读写等 网络编程 做出比较美观的界面 ...

  4. Active-MQ的安装

    (1)首先就是下载软件 wget http://archive.apache.org/dist/activemq/apache-activemq/5.9.0/apache-activemq-5.9.0 ...

  5. 反射工具类——ReflectUtils

    测试方法:根据已知的方法名,来反射调用方法 package com.redmoon.forum.job; import java.util.ArrayList; import java.util.Li ...

  6. 【Matplotlib】 刻度设置(2)

    Tick locating and formatting 该模块包括许多类以支持完整的刻度位置和格式的配置.尽管 locators 与主刻度或小刻度没有关系,他们经由 Axis 类使用来支持主刻度和小 ...

  7. 【长期更新】--神犇的BLOGS(各种高端讲解)

    KMP字符串匹配算法: http://kb.cnblogs.com/page/176818/ http://blog.csdn.net/yutianzuijin/article/details/119 ...

  8. android.net.wifi的简单使用方法

    获取Wifi的控制类WifiManager.  WifiManager  wm=(WifiManager)getSystemService(Context.WIFI_SERVICE); 接下来可以对w ...

  9. view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的

    view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的,就是没有name属性,后台获取不到值

  10. linux:Nginx+https双向验证(数字安全证书)

    本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...