我应该在nginx中使用rewrite或return或proxy_pass吗?
Apache documentation非常清楚地表明mod_rewrite应该只是最后的手段.对于nginx,陷阱部分有一些示例,其中request_uri基本上没有变化. 情况是这样的: >我们(一个研究所的一个部门)有一个主要的网络服务器,即将升级(运行Debian 6).为了处理升级,我已经设置了一个nginx服务器,它将已知的部件代理到升级后的服务器,其他部件代理到旧服务器. 我的主要问题是: >鉴于A和B都在不同的服务器上代理C,我应该使用重写或位置返回将B的请求重定向到A,还是继续代理两者? 重定向(和返回)具有清楚地指示两个目录之间的关系的好处. 我的重写规则如下:
并且退货规则:
附:
最佳答案
如果您的nginx服务器每秒处理数千个请求并且您希望避免每个请求在重写正则表达式匹配中花费CPU时间,那么execpt并不重要.现在,我会说使用最清晰的方式编写配置文件,直到达到此限制,然后如果您没有预算来扩展基础架构,那么就应该考虑欺骗配置以适应您的流量.返回的缺点是,如果您有多个重定向,最终会有一个包含一个返回指令的位置.使用重写,您可以将其中的多个包装在一个通用位置,并在第一个参数中测试更具体的模式.
更新:通用位置中的多重定向示例: (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 是否可以在不安装卷的情况下将请求传递给php-fpm
- Nginx conf中的短路逻辑(想覆盖一个位置)
- 将Nginx修补为ip_hash 4个八位字节而不是3个
- cache – 如何使用nginx作为缓存反向代理来替换squid/varni
- 设置Elastic Load balancer后,我的https不再起作用了. Ngin
- linux – FastCGI启动器
- ruby-on-rails – 配置nginx以提供静态json文件
- node.js – 如何在使用docker-compose时为mongodb图像添加–
- 使用Nginx作为多个服务器的反向代理
- node.js-如何在容器内正确运行nodejs?
- google-chrome – 将资源解释为文档,但使用mime类
- Nginx proxy_pass通过https_proxy
- django – gunicorn:错误(没有这样的文件)nginx
- python – 如何在执行模式下使用SELinux运行Flas
- ruby-on-rails – Gem:Module的未定义方法`path
- 来自Nginx中proxy_pass uri中主机名的正则表达式
- 安装乘客后Nginx重启命令失败
- ruby-on-rails – 错误乘客没有看到环境变量?
- ruby-on-rails-为什么SSL重定向不能与force_ssl和
- nginx – 使用SSL的Chrome中的“连接未压缩”