我想redirect非SSLstream量到所有子域的SSL。 我想保持子域相同。 我想为staging.foo.com指定一个不同的proxy_pass 。 我现在只有3件事foo.com , www.foo.com和staging.foo.com 。 我想代理将裸域和www传递给localhost 8000.而代理将staging子域传递给localhost 8001。 http://foo.com/ -> https://foo.com/ -proxy-> 127.0.0.1:8000 http://www.foo.com/ -> https://www.foo.com/ -proxy-> 127.0.0.1:8000 http://staging.foo.com/ -> https://staging.foo.com/ -proxy-> 127.0.0.1:8001 随着下面,它看起来像所有stream量到www或staging被redirect到裸露的域名。 我究竟做错了什么? server { listen 80; server_name foo.com www.foo.com staging.foo.com; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443; server_name foo.com www.foo.com; # … location / { proxy_pass http://127.0.0.1:8000/; […]
我使用Apache mod_proxy作为内部服务器的反向代理,使用mod_security将apache服务器string重命名为不同的内容,但内部服务器的服务器string被转发。 显然,我想我的反向代理隐藏内部服务器的服务器string(不能直接更改它们),而是显示自定义的。 怎么做?
我使用这个脚本https://github.com/gitlabhq/gitlabhq/issues/3626在我的Apache服务器上安装了GitLab,并且我configuration了Apache来将端口8080上的所有内容转发到端口3000,如下所示: <VirtualHost *80> ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ProxyPreserveHost On DocumentRoot /var/www <Directory /> Options FollowSymLinks Allow Override </Directory> . . . </VirtualHost> 不过,我想转发一切只为我在这个networking服务器上托pipe的特定网站。 可以这样做吗? 我对这些东西很陌生,如果有什么不清楚的地方,请问。
我们目前在Windows IIS 7服务器上托pipe所有东西。 我们只是搬到了Azure,就像托pipeWindows的许多云比托pipeLinux一样昂贵。 对于虚拟机(与AWS相比),Azure有自己的限制,因为您只能将一个公有IP地址绑定到Web服务。 为了克服这个限制,并build立一些故障切换和cachingfunction,我们将NginX视为负载均衡器,将逆向代理放在我们的IIS服务器前面。 最近我们了解到Google的Pagspeed for Apache也适用于NginX。 基于在线教程和我们的一点经验,我们可以通过使用3个独立的Nginx服务器层(见下面)来获得NginX的所有好处。 我的问题是,如何才能在一个虚拟主机上完成? 这里是我们现在可以设置的一个例子: Nginx1 – 这个服务器位于Nginx2的前端,并执行SSL卸载并将静态内容caching到正在运行的Linux服务器上。 它会将静态资源caching到磁盘和内存。 NginX2 – 这个Nginx服务器位于Nginx3之前,包括Nginx的Google Mod Pagespeed。 这个服务器的目标是分配和合并脚本并优化图像。 由于这些操作可能很昂贵,所以我们把NginX1放在这个服务器的前面。 NginX3 – (如果我们一次运行3个Nginx实例,HA代理也可以工作)。 这是Linux机器上运行的最后一个Nginx服务器。 它的工作只是作为我们的IIS场的反向代理。 这个想法是,如果我们启动另一个IIS服务器(目前我们只有两个),那么我们只是把它添加到这个NginX的configuration,Nginx负责平衡。 我们仍然使用粘滞会话(由于一些马虎asp / asp.net代码),但至less我们可以划分不同虚拟机之间的工作量,并通过在我们的“IIS场”中添加一台机器来扩展(不使用IIS场特征)。 2X IIS服务器 – 这些只是iis服务器(全部相同),其中有多个站点configuration和网站通过FTP或Git加载到他们。 问题: 我们能否放弃拥有3个独立的Nginxconfiguration(虚拟主机),并将每一个结合起来? 如果是这样的话,那么在单个configuration中如何configurationNginX的例子将会非常棒! 我们如何能够保持上述目标,并将X地址转发给后端iis机器? 如果我们的Nginx服务器出现故障,那么会有什么build议呢? 上面的设置是我们的单点故障。 将上面的设置与两个Linux服务器,与DNS故障转移的组合或只有双DNSlogging修复了让我们的Nginx服务器的问题? Nginx的资源如何? 假设一个只有768mb ram的Azure Extra小“微”实例可以处理50-100个并发访问者是否安全? 提前致谢!!!!! 参考文献: NginX Pagespeed: http : //ngxpagespeed.com/ngx_pagespeed_example/ NginX反向代理: […]
好的,所以标题可能有点混乱,但是这个问题真的是这样! 首先是第一件事:一点背景。 我正在为客户build立一个CI服务器,这个服务器应该用于自动testing和构build,以及他们提出的与CI有关的任务。 正在testing的解决scheme主要是networking解决scheme,这些解决scheme都在MII / NetWeaver Web服务器上运行。 这个Web服务器向开发人员提供了一个工具,它允许你在你的HTML中插入“代码片段”,然后在发送到浏览器之前,用一个可定制的值代替它。 很聪明。 但是,为了能够testing客户端代码,我需要尽可能使testing系统与此MII Web服务器分离。 所以我创build了一个小型的Node.js服务器应用程序,它就是这样做的 – 用configuration的值replaceHTML中的代码片段。 这很好用! 但是,我无法访问服务器API来testing客户端代码。 所以,使用nginx,我创build了一个反向代理,它将所有/ XMII / *请求转发给MII服务器。 简单,而且效果很好! 为了让所有的东西一起工作,我还为我的Node.js应用程序创build了一个反向代理。 这样,2个独立的服务器可以在同一个端口上访问,就像用户所期望的那样。 但是,在配对2(Node.js服务器和nginx反向代理服务器)的时候,我会在加载一些客户端文件的过程中看到1分钟(准确的说! 它从只有一个文件,到几个文件有所不同。 以下是一些屏幕截图,从Google Chrome的POV中完整显示发生了什么: 它说,它已经等待了1分钟的文件,并收到它在0毫秒? 这看起来更正常。 这里是我的configuration文件的Node.js服务器和nginx代理。 我已经删除了篡改HTML正文的代码,因为注释它们对性能没有任何影响。 Node.js服务器: var BASE = 'C:/Users/twj/Documents/git'; var CUSTOM_ATTRIBUTES = null; var http = require('http') ,express = require('express') ,tamper = require('tamper') //Used to tamper with the […]
我在Apache 2.4(在Ubuntu 12.04上)使用haproxy 1.5-dev19。 Haproxy正在侦听端口80和443 ,Apache正在侦听8080 – 但是,当我从PHP(5.5)输出$_SERVER['SERVER_PORT'] ,它显示为80 ,何时应该是8080 。 也就是说,我会假定PHP看到Apache服务器端口,但似乎并不是这样。 我可以忽略什么?
我正在尝试使用error_page,如下所示,以捕获错误,然后从外部URL中读取内容,并将其发送到客户端: error_page 404 =404 @err404; location @err404 { proxy_pass http://www.myserver.com; } 这是在“服务器”指令。 我希望任何404被这个(它是) – 然后从http://www.myserver.com读取内容 – 并返回作为404的正文返回到客户端。 这几乎工作 – 但是当我尝试访问http://myserver/somenonexistingURL ,代理通过http://www.myserver.com/somenonexistingURL – 这似乎是无益的 – 有没有办法让它只是代理内容的确切我input了什么? 没有代理整个请求? 如果我放 error_page 404 http://backend 然后我得到一个30X的redirect(按照文档) – 这不是我想要的。 有任何想法吗? 文档: http : //wiki.nginx.org/HttpCoreModule#error_page和http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page
我正在做出决定,但我不确定是否可以用NGINX做以下事情: NGINX将被安装在一个将有一个Windows VM的Linux服务器上 NGINX可以将一组固定的域名指向本地的Apache,并将所有其他的一切代码都转发给Windows VM。 据我所知,只有在Apache和Windows VM上托pipe的固定域集可以包含任何数量的未知域。 这甚至可以工作吗? 我可以使用某种types的数据库(mysql,postgre,mongo,redis,couchbase,memcached?)从哪里nginx可以得到的域名列表和路由他们? 有一个更好的方法吗 ?
我确信这已经被问过,但没有一个答案似乎为我工作。 我有一个域domain.com 。 我有一个子域sub.domain.com在相同的IP。 在这种情况下, sub.domain.com是指向domain.com的CNAMElogging。 我有这个服务器上运行的Apache。 我在sites-available / default中有一个mod_rewrite规则,将所有非ssl连接redirect到ssl: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 到目前为止,这工作正常。 如果我连接到http://domain.com/foo我使用ssl指向https://domain.com/foo 。 但是,现在我有另一个端口上运行的服务器上运行的另一个Web服务器,我想通过sub.domain.com访问。 我创build了一个将sub.domain.com指向domain.com的CNAMElogging,因此它们都具有相同的IP地址。 我可以做一个SSL连接到https://domain.com:port第二台服务器,它工作正常。 据我可以告诉mod_rewrite上面的东西不应该导致任何问题,因为如果我连接到http://sub.domain.com我应该首先被redirect到https://sub.domain.com ,然后应该得到通过代理到第二个networking服务器。 每当我尝试连接到sub.domain.com或domain.com时,我所遵循的每个博客文章教程和serverfault答案都留下了一些configuration,这些configuration会将所有内容发送到domain.com或给我ssl握手错误。 任何人都可以告诉我这样做的正确方法,并解释为什么它的作品?
我的设置是: Cas服务器(可以说url https://localhost:8443/cas-server/ ) 托pipe在一个tomcat服务器上的cas-protected网站,运行cas-client(可以说( https://localhost:4448/myApp ) 一个httpd apache2,带有mod auth cas和proxy_http,用作反向代理。 ( http://localhost:80 ) 我想要做的是将反向代理configuration为这样的东西: <Location /proxyTest > ProxyPass https://localhost:4448/myApp ProxyPassReverse https://localhost:4448/myApp </Location> 然后能写 https://localhost/proxyTest 代替 https://localhost:4448/myApp 这工作得很好,我得到redirect,我得到了机票,我得到authentication等。问题是,caslogin页面的url显示: https://localhost:8443/cas-server/login?service=https%3A%2F%2Flocalhost%3A4448%2Fmyapp login后,我的浏览器中显示的url是: https://localhost:4448/myApp 所以redirect没有正常工作…在某个地方,我被送回到非代理URL。 最有可能由cas客户端。 我怎样才能build立这样一个代理工作正常,所有这一切都是透明的,一旦我有一个有效的票? 正在使用tomcat的AJP? 或者在cas-client中configuration和使用神秘的cas代理callback的东西,我从来没有理解如何使用? 别的东西?