静态文件上的Nginx反向代理404
我希望反向代理一个URL /路径到端点上的不同端口,代表托管自己的Web应用程序的不同服务器. 我有proxy_pass工作,但静态文件失败,因为资源是相对于他们的实例. 我有例如 – server_name = myproxy.com:
除了与app2关联的静态文件外,反向代理的工作原理很棒. App1静态文件工作正常,但App2静态文件导致404.这是有道理的,因为App1资源文件位于/assets/app1.css这是有效的,因为我有一个位置/到位的重定向,可以解析回App1但App2资源文件完全不同/assets/app2.css导致404. 那么,有没有办法将/assets/app2.css中的App2静态请求重写到各自的代理位置?就像是:
最佳答案
当文件/assets/app1.css(App1)按位置/ app1 /的规则加载时,然后按位置/的规则加载为/assets/app1.css. App2具有相同的行为,但您的位置/配置为App1,而不是App2.
您的配置必须是:
必需:代理和upsteam服务器上的别名app1应该相同.在upsteam服务器上,它可能是原始webroot应用程序的符号链接. 或者您可以使用不同的子域或端口….
附: 我通过代理探索了nginx配置的许多操作. Nginx无法正常使用一条规则:
例如: 从请求proxy_server / app1 / index.html,您将获得404. 您可以将location / css / rule添加到config.但是你的app2也可以使用这个位置.并且您无法通过他检测上游服务器代理.您可以使用reffer来检测上游
但重定向后POST数据将被销毁. 如果有必要按位置仅将配置调整到代理服务器,那将是很好的.但这是一个梦想. (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何通过负载平衡流式传输点播视频
- utf-8-使用pcre 8.3在nginx上的unicode url重写规则失败
- nginx – 根据同一vhost中访问的主机名自动选择SSL证书
- nginx – 我的www子域名收到了SSL_ERROR_BAD_CERT_DOMAIN
- nginx和varnish用于缓存强制ssl
- Nginx返回一个假的200状态代码的空json对象
- asp.net-mvc-2 – Mono MVC 2主路由不起作用
- nginx从1.2.1更新到1.9.2后,PHP-FPM状态页面为空白
- NGINX和SPDY v2,v3和v3.1?
- nginx – 用于通配符URL映射的Kubernetes Ingress控制器