标签: mod-proxy

NGINX反向代理websockets并启用SSL(wss://)?

我很遗憾和我自己建立NGINX的新手,但我希望能够启用安全的websockets,而无需额外的层.

我不想在websocket服务器本身上启用SSL,而是想使用NGINX为整个事物添加SSL层.

每个网页都说我做不到,但我知道我可以做到!感谢任何人(我自己)可以告诉我如何!

ssl proxy tcp nginx mod-proxy

120
推荐指数
7
解决办法
13万
查看次数

apache to tomcat:mod_jk vs mod_proxy

使用mod_jkmod_proxy使用apache前端tomcat实例的优点和缺点是什么?

我已经在生产中使用mod_jk多年了,但我听说它是​​面向tomcat的"旧方式".我应该考虑改变吗?会有什么好处吗?

apache tomcat mod-proxy mod-jk

105
推荐指数
3
解决办法
8万
查看次数

django rest_framework中缺少授权头,是否应该归咎于什么?

我设法扩展TokenAuthentication并且在使用请求会话来存储我的令牌时有一个工作模型,但是当我尝试作为此处所述Authorization的头参数传递时,我注意到我的响应没有META变量HTTP_AUTHORIZATION.我还注意到,如果我将"Authorization2"作为标头参数传递,它在请求中可见:

{
    '_content_type': '', 
    'accepted_media_type': 'application/json', 
    '_request': <WSGIRequest
        path:/api/test_auth/,
        GET:<QueryDict: {}>,
        POST:<QueryDict: {}>,
        COOKIES:{
            'MOD_AUTH_CAS_S': 'ba90237b5b6a15017f8ca1d5ef0b95c1',
            'csrftoken': 'VswgfoOGHQmbWpCXksGUycj94XlwBwMh',
            'sessionid': 'de1f3a8eee48730dd34f6b4d41caa210'
        },
        META:{
           'DOCUMENT_ROOT': '/etc/apache2/htdocs',
           'GATEWAY_INTERFACE': 'CGI/1.1',
           'HTTPS': '1',
           'HTTP_ACCEPT': '*/*',
           'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
           'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
           'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
           'HTTP_AUTHORIZATION2': 'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4c',
           ...
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是apache正在删除授权头,并且我已经阅读了一些S/O问题,这些问题表明,如果apache与基本授权不匹配并进行身份验证,则会丢弃该值,但我不知道如何允许Authorization标头"传递"到Django和WSGIRequest.有谁知道如何解决这个问题?

我也使用mod_auth_cas和mod_proxy,如果改变了什么..

apache authorization apache2 mod-proxy django-rest-framework

56
推荐指数
3
解决办法
2万
查看次数

Apache mod_proxy和Tomcat出现Bad Gateway 502错误

我们在Tomcat 6和Apache mod_proxy 2.2.3上运行Web应用程序.看到很多像这样的502错误:

错误的网关!代理服务器从上游服务器收到无效响应.

代理服务器无法处理请求GET /the/page.do.

原因:从远程服务器读取时出错

如果您认为这是服务器错误,请与网站管理员联系.

错误502

Tomcat有很多线程,因此它不受线程限制.我们正在通过JMeter推动2400名用户对抗该应用.所有的盒子都位于我们的防火墙内快速卸载的网络上,所以不应该有任何网络问题.

任何人有什么建议可以看待或尝试?接下来我们将前往tcpdump.

更新10/21/08:仍然没有想到这一点.只看到极少数这些负载.下面的答案还没有提供任何神奇的答案.:)

java apache tomcat mod-proxy

48
推荐指数
3
解决办法
18万
查看次数

使用SSL代理

我有一台运行Apache的Linux主机和一台运行IIS的Windows主机.我有一个指向Linux主机的域,需要将其中继(代理)请求发送到IIS; 因此我在Apache中有以下虚拟主机定义(工作正常):

<VirtualHost 192.168.0.2:80>
    ServerName www.acme.com
    DocumentRoot /var/www/acme.com

    RewriteEngine On
    RewriteOptions Inherit
    RewriteRule ^/(.*) http://win.acme.com/$1 [P]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

现在我想添加SSL支持; 定义变为:

<VirtualHost 192.168.0.2:443>
    ServerName www.acme.com
    DocumentRoot /var/www/acme.com
    GnuTLSEnable On
    GnuTLSPriorities NORMAL:%COMPAT
    GnuTLSCertificateFile /var/www/ssl/www.acme.com.crt
    GnuTLSKeyFile /var/www/ssl/www.acme.com.key

    RewriteEngine On
    RewriteOptions Inherit
    RewriteRule ^/(.*) https://win.acme.com/$1 [P]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我在两个Web服务器上都有有效且可信的证书,如果我访问https://win.acme.com一切都很好,但是,当我访问时,https://www.acme.com我收到500内部服务器错误消息.查看错误日志显示:

[Wed Jul 20 08:35:34 2011] [错误] [客户端76.168.166.70] SSL代理请求www.wileybits.com:80但未启用[提示:SSLProxyEngine] [Wed Jul 20 08:35:34 2011] [error] proxy:HTTPS:无法为74.166.186.70:443启用ssl支持(win.acme.com)

请注意代理请求似乎是针对错误的域(wileybits)...它显示的域也由我的Apache服务器托管,但我不知道为什么它出现在acme.com的日志中(反向也许是DNS查找?)

无论如何,我错过了什么?

提前谢谢 - ekkis

ps主机名和地址已被修改,以保护无辜:)

*更新*

有:

RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,但当然,Windows的主机名变得可见,这在我的场景中是不可接受的

我也试过(而不是mod_rewrite):

ProxyRequests Off
ProxyPass / …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite apache2 virtualhost mod-proxy ssl-certificate

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

使用身份验证设置Apache代理

我需要设置一个带身份验证的代理来验证连接到Internet的应用程序的行为.

我正在尝试使用转发代理和身份验证来设置Apache安装,即使我接近使其工作,我想知道是否有更好的方法,因为配置相当深奥.

Apache如何配置为以这种方式工作?

还有其他已经配置好的选项吗?也许是一些VM或其他一些软件工具,而不是Apache?

apache authentication proxy mod-proxy

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

Apache 2.4 + PHP-FPM和授权标头

简介: Apache 2.4的mod_proxy似乎没有将Authorization标头传递给PHP-FPM.有没有什么办法解决这一问题?

长版: 我正在使用Apache 2.4和PHP-FPM运行服务器.我正在使用APC进行操作码缓存和用户缓存.根据Internet的建议,我使用Apache 2.4的mod_proxy_fcgi来代理对FPM的请求,如下所示:

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/foo/bar/$1
Run Code Online (Sandbox Code Playgroud)

安装工作正常,除了一件事:APC捆绑的apc.php,用于监控APC的状态不允许我登录(查看用户缓存条目所需).当我单击"用户缓存条目"以查看用户缓存时,它会要求我登录,单击登录按钮会显示通常的HTTP登录表单,但输入正确的登录名和密码不会成功.当使用mod_php而不是mod_proxy + php-fpm运行时,此函数运行正常.

经过一些谷歌搜索,我发现其他人有同样的问题,并发现这是因为Apache没有将授权HTTP标头传递给外部FastCgi进程.不幸的是我只找到了mod_fastcgi的修复程序,它看起来像这样:

FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
Run Code Online (Sandbox Code Playgroud)

有没有相同的设置或一些解决方法,也适用于mod_proxy_fcgi?

php apache apc http mod-proxy

36
推荐指数
2
解决办法
3万
查看次数

Apache + Node.js + mod_proxy.如何将一个域路由到:3000,另一个域路由到:80

问题:我需要在不同域上的同一台服务器上托管节点应用程序和php应用程序.

example.com应该正常使用端口80,但node-example.com应该路由到端口3000.

路由从端口80到3000的所有流量使用mod_proxy正常工作,因此:

<VirtualHost *:80>
    ServerAdmin info@node-example.com
    ServerName  node-example.com
    ServerAlias www.node-example.com

    ProxyRequests off

    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>

    <Location />
            ProxyPass http://localhost:3000/
            ProxyPassReverse http://localhost:3000/
    </Location>

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是,这会使example.com和node-example.com指向localhost:3000并运行Node-app.

有没有办法让example.com指向端口80?

example.com/old-admin指向端口80也没关系.

apache mod-proxy node.js

28
推荐指数
2
解决办法
3万
查看次数

保留mod_proxy重定向上的原始请求URL

我在Servlet容器(端口8080)上运行WebApplication,该环境可以从Internet(外部)和公司内部(内部)访问,例如

http://external.foo.bar/MyApplication
http://internal.foo.bar/MyApplication
Run Code Online (Sandbox Code Playgroud)

使用带有mod_proxy的apache http服务器将incomming(外部/内部)请求重定向到servlet容器.配置如下所示:

ProxyPass /MyApplication http://localhost:8080/MyApplication retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /MyApplication http://localhost:8080/MyApplication
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是某些MyApplication响应依赖于原始请求URL.具体:将为WSDL文档提供具有元素的schemaLocation="<RequestUrl>?xsd=MyApplication.xsd"元素.

使用我当前的配置,它总是看起来像

<xs:import namespace="..." schemaLocation="http://localhost:8080/MyApplication?xsd=MyApplication.xsd"/>
Run Code Online (Sandbox Code Playgroud)

但它应该是

External Request: <xs:import namespace="..." schemaLocation="http://external.foo.bar/MyApplication?xsd=MyApplication.xsd"/>
Internal Request: <xs:import namespace="..." schemaLocation="http://internal.foo.bar/MyApplication?xsd=MyApplication.xsd"/>
Run Code Online (Sandbox Code Playgroud)

我想这是一个常见的要求.但由于我不是apache http服务器及其模块配置的专家,如果有人可以提供一些(详细的)帮助,我会很高兴.

提前致谢!

apache mod-rewrite redirect web-applications mod-proxy

22
推荐指数
2
解决办法
4万
查看次数

收到带签名的Ajp无效邮件

我正在使用Tomcat 7.0.29前面的Apache 2.2.22 modproxy.配置Ajp作为httpd.conf中的协议和server.xml中的AjpNioProtocol.服务器启动后,日志将填充以下消息:

严重:收到签名
20599 com.apache.coyote.ajp.AjpMessage processHeader的消息无效

没有请求发送到Web或tomcat服务器,它仍然会抛出该错误.tomcat和apache中的访问日志显示没有请求进入.导致无效消息错误的原因是什么?

这是配置:

apache2 mod-proxy proxypass tomcat7

22
推荐指数
2
解决办法
6万
查看次数