标签: reverse-proxy

Apache 2.2反向代理无法正常工作

我正在尝试设置我的apache(版本2.2.3)作为反向代理.我在公共服务器上配置了apache,如下所述http://www.askapache.com/htaccess/reverse-proxy-apache.html

LoadModule proxy_module      modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module    modules/mod_headers.so
LoadFile   /usr/lib/libxml2.so
LoadModule proxy_html_module modules/mod_proxy_html.so

ProxyRequests off
ProxyPass /app1/ http://internal1.example.com/page1/
ProxyPassReverse /app1/ http://internal1.example.com/page1/
ProxyHTMLURLMap http://internal1.example.com/page1/ /app1/


internal1是本地网络中的其他服务器.

主页(www.example.com/app1/)显示正确,但是当我的内部服务器进行重定向时出现问题.在这种情况下,我的浏览器(Firefox 3.5.3或Internet Explorer 7)搜索本地网络中的地址(internal1.example.com/page1/).对我来说,apache忽略了ProxyPassReverse指令.

reverse-proxy apache2 proxypass

5
推荐指数
1
解决办法
1万
查看次数

为什么nginx不缓存我的内容?

我检查了缓存路径/ usr/local/nginx/proxy_cache.我多次访问一些网址后找不到缓存文件.

我的配置:ngnix.conf

http {
   include       /etc/nginx/mime.types;

   default_type  application/octet-stream;

   access_log   /var/log/nginx/access.log;

   sendfile        on;
   #tcp_nopush     on;

   #keepalive_timeout  0;
   keepalive_timeout  65;
   tcp_nodelay        on;

   client_body_buffer_size  512k;  


   proxy_temp_file_write_size 128k;  
   proxy_temp_path   /usr/local/nginx/proxy_temp;  
   proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=content:20m inactive=1d max_size=100m;   

   gzip  on;

   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)

默认

server {
listen   80;
server_name  208.115.202.87;


   location  /test {    
     proxy_cache content; 
     proxy_cache_key $host$uri$is_args$args;
         proxy_cache_valid  200 15m;
     proxy_pass  http://aaa.com/;
    }
Run Code Online (Sandbox Code Playgroud)

proxy caching reverse-proxy nginx

5
推荐指数
2
解决办法
9661
查看次数

OmniAuth在反向代理设置中使用错误的回调端口

我有一个在端口上运行的Rails应用程序3101,我通过Apache反向代理设置将其提供给互联网(就像Phusion在此博客文章中建议的那样).

我正在使用Devise + OmniAuth来处理Facebook身份验证.

但是当我尝试通过Facebook进行身份验证时,我被重定向到了网址: http://mydomain.com:3101/my_callback_path

我启动rails应用程序,passenger start -a 127.0.0.1 -p 3101 -d我的Apache设置是:

<VirtualHost *:80>
    ServerName mydomain.com

    PassengerEnabled off
    ProxyPass / http://127.0.0.1:3101/
    ProxyPassReverse / http://127.0.0.1:3101

    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我发现像一些答案,这个这个,但他们都打算Nginx的设置.

我试过使用初始化程序,OmniAuth.config.full_host = 'http://my domain.com'但我想知道我的apache设置中是否没有丢失配置(如前面的答案).

提前致谢.

apache port reverse-proxy ruby-on-rails omniauth

5
推荐指数
1
解决办法
2294
查看次数

IIS 7反向代理背后的Websocket服务器

我使用.NET 4.0和Sockets使用hybi-17规范构建了一个WebSocket聊天服务器.如果浏览器连接到端口81上的聊天服务器,则一切都按预期运行.但是由于公司防火墙等 - 我需要浏览器连接到端口80,因为这需要全世界的每台PC都可以访问.

所以我使用IIS 7作为反向代理.我已经设法让浏览器连接到IIS 7上的ws:// localhost/chatProxy,然后将请求代理到http:// localhost:81/chatProxy,其中websocket服务器正在侦听.

Websocket服务器执行握手并为连接创建套接字,然后返回到侦听状态.

问题是,在客户端,websocket"onopen"事件永远不会被触发.就好像IIS不会将请求发送回浏览器一样.

任何帮助将受到高度赞赏!

提前致谢!!

c# reverse-proxy websocket

5
推荐指数
1
解决办法
3810
查看次数

Lighttpd反向代理设置

我正在尝试将Lighttpd配置为充当反向代理.我希望有几个URL代理到不同端口上的不同服务器,可以在同一台机器上,也可以在本地网络中.

例如:

// static/socket/ajax

Lighttpd将代理所有连接,除了那些连接/static.我想/static直接从这个lighttpd实例提供所有请求.

这是mod_proxy的配置文件:

##
# Serve Static Content via Lighttpd.
#
$HTTP["url"] =~ "^/static/" {
    server.document-root = "/path/to/my/static/files"
    accesslog.filename = rootdir + "/var/log/static.log"
    server.errorlog = rootdir + "/var/log/static.error.log"
}
##
# Proxy to instance of Socket.io.
#
else $HTTP["url"] =~ "^/socket/" {
    accesslog.filename = rootdir + "/var/log/socket.log"
    server.errorlog = rootdir + "/var/log/socket.error.log"
    proxy.server  = (
        "" => ( (
            "host" => "127.0.0.1",
            "port" => 3000
        ) )
    )
}
##
# Proxy to …
Run Code Online (Sandbox Code Playgroud)

ajax reverse-proxy lighttpd socket.io

5
推荐指数
1
解决办法
2203
查看次数

反向代理的Apache基本身份验证问题

我想为在Ubuntu服务器12.04.1上运行的Apache的反向代理站点添加基本身份验证.

Web应用程序是在Java EE容器上运行的Jenkins.

我在httpd.conf中添加了以下配置,

ProxyPass         /jenkins/  http://localhost:8080/jenkins/¬
ProxyPassReverse  /jenkins/  http://localhost:8080/jenkins/¬
ProxyRequests     Off¬
ProxyPreserveHost On¬ 
¬
<Proxy http://localhost:8080/jenkins*>¬
  Order deny,allow¬
  Deny from all¬
? AllowOverride AuthConfig¬
? AuthType Basic¬
  AuthName "jenkins"¬
? AuthBasicProvider file¬
  AuthUserFile /etc/apache2/passfile¬
? Require valid-user¬
? Satisfy any¬
</Proxy>
Run Code Online (Sandbox Code Playgroud)

当我使用错误的密码或不存在的用户名进行身份验证时,我可以在error.log of apache中找到以下消息,

[星期六10月27日17:51:59 2012] [错误] [客户端222.128.175.95]用户kane:"/ jenkins /"验证失败:密码不匹配[星期六27 27:52:04 2012] [错误] [客户端222.128.175.95]用户阿拉丁未找到:/ jenkins /

passfile中使用正确的用户和密码时,不会记录任何消息.虽然我在网络浏览器中输入了正确的用户和密码,但验证对话框会再次提示.我也在apache的access.log中找到了以下输出,

222.128.175.95 - kane [27/Oct/2012:17:39:54 +0800]"GET/jenkins/HTTP/1.1"401 794" - ""Mozilla/5.0(Macintosh; Intel Mac OS X 10_8_2)AppleWebKit/537.4 …

apache authentication ubuntu reverse-proxy jenkins

5
推荐指数
1
解决办法
7716
查看次数

在nginx的配置中,"if(!-f $ request_filename){"是否会导致虚拟机性能下降?

如果将nginx配置为反向代理,那么下面的配置(反直觉)是否会导致性能下降?

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }
Run Code Online (Sandbox Code Playgroud)

这将检查文件是否存在,然后提供它并完成请求.但是,这可能会导致一些I/O发生.如果该文件系统很慢,那么将请求转发到代理服务是否可能更快?

configuration reverse-proxy nginx

5
推荐指数
1
解决办法
5239
查看次数

从反向代理请求中保留协议和端口号

案件:

用户请求https://api.abc.com

这是在http://internal.abc.com:123上反向代理(Apache 2.2)到内部服务器服务器

根据mod_proxy重定向保留原始请求URL,添加:

ProxyPreserveHost On
Run Code Online (Sandbox Code Playgroud)

对于httpd.conf,internal.abc.com目前将原始请求URL识别为:

http://api.abc.com:123

有什么方法可以恢复https://api.abc.com的原始网址吗?也就是说,还保留原始协议(http)和端口(80,或空也很好)

apache reverse-proxy apache2 mod-proxy httpd.conf

5
推荐指数
2
解决办法
2704
查看次数

&lt;allowedServerVariables&gt;标记应位于Azure网站applicationHost.config中的何处?

技术信息

情境

我已经在上实现了反向代理Azure Website,但是接收服务器没有收到任何有关初始请求是否结束的指示HTTPS

我想做的是通过custom将初始请求的HTTPS标志ON/OFF发送到代理服务器HTTP Header

理论上

  • 使用shibayanIIS Manager Site Extension,我可以编辑applicationHost.xdt文件,给它一个变换插入一个<allowedServerVariables>标签,并应让我设置自定义HTTP Header

实践中

我已经将重写规则配置为:

<rule name="Proxy" stopProcessing="true" xdt:Transform="Replace" xdt:Locator="Match(name)">
  ...
  <serverVariables>
    <set name="HTTP_X_USE_HTTPS" value="{HTTPS}" />
  </serverVariables>
  ...
</rule>
Run Code Online (Sandbox Code Playgroud)

并尝试了将<serverVariables>标签放置在哪里的几种组合...

尝试一个:

答案中所述

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <proxy enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" xdt:Transform="Insert" />
    <rewrite>
      <allowedServerVariables>
        <add name="HTTP_X_USE_HTTPS" …
Run Code Online (Sandbox Code Playgroud)

iis reverse-proxy url-rewriting azure

5
推荐指数
1
解决办法
2139
查看次数

在代理后面运行keycloak时无效的令牌发行者

我将我的keycloak服务器放置在apache代理后面:

ProxyRequests On
ProxyVia On
ProxyPreserveHost On
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
<LocationMatch "/auth/">
    ProxyPass http://keycloak:8090/auth/ Keepalive=On
</LocationMatch>
ProxyPassReverse "/auth/" "http://keycloak:8090/auth/"
Run Code Online (Sandbox Code Playgroud)

我已经成功地告诉我在JavaScript端的密钥斗篷使用/ auth进行身份验证:

{
  "realm" : "local",
  "auth-server-url" : "/auth",
  "ssl-required" : "external",
  "resource" : "client-local",
  "public-client" : true
}
Run Code Online (Sandbox Code Playgroud)

我已经成功登录,但是在发出服务器请求后,过滤器(org.keycloak.jaxrs.JaxrsBearerTokenFilterImplfrom keycloak-jaxrs-oath-client-4.0.0.FINAL)引发异常:

WWW-Authenticate:Bearer realm =“ local”,error =“ invalid_token”,error_description =“无效的令牌发行者。预期为' http:// keycloak:8090 / auth / realms / local ',但为' http:// localhost / auth / realms / local '“

我在这里想念的是什么?我期望反向代理对于密钥斗篷是透明的...我也无法在密钥斗篷管理面板中找到将本地主机添加到有效发行人的选项...

如何使该设置生效?

apache reverse-proxy keycloak

5
推荐指数
1
解决办法
1846
查看次数