标签: mod-proxy

使用apache mod_proxy缺少Doctype HTML部署

我有一个奇怪的问题......

我的Vaadin应用程序在我的计算机上工作正常(本地).我刚刚部署了网站,现在我遇到了一个问题:

<!Doctype html>第一行中的标记丢失.我不知道为什么会这样,但我认为这会导致一些问题,因为网站以Quirks模式显示.

有趣的是,当我在本地运行应用程序时,会设置doctype标记.

我只是将应用程序导出到war文件并进行部署.

到目前为止,我还没有在互联网上找到任何解决方案......

这是Tomcat设置问题还是其他什么?

html apache doctype tomcat mod-proxy

2
推荐指数
1
解决办法
2351
查看次数

在 Apache 中的转发代理之前更改请求标头

我在 Apache 中使用了“转发代理”。我想在传递请求之前更改请求标头的一部分。例如,我想更改标题中的主机参数。我在 httpd.conf 中使用了这部分配置,但在传递请求之前它不会更改标头。

Listen 7654
<VirtualHost *:7654>
    RequestHeader set Host "test.com"
    ProxyRequests On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

apache2 mod-proxy request-headers

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

如何在端口80上运行sails.js应用程序?

我必须将sails.js放在80端口,但是apache已经在使用它了.如何将两个(sails.js和apache)放在同一个端口80上?我需要它,因为在我的公司中除了PORT 80之外所有端口都被阻止.(这是一个带有nodejs和socket.io(websockets)的实时应用程序,另一方面是一个php应用程序).非常感谢

apache mod-proxy node.js sails.js

2
推荐指数
1
解决办法
2811
查看次数

ProxyPass apache https到节点服务器

我正在尝试使apache服务器成为我的节点服务器的网关.
我的apache将提供静态页面,节点将充当rest api服务器.
节点和apache都位于同一台服务器上,ubuntu 64bit ec2.

我试图为https做这个并且失败了,后来我试图为代理传递打开一个http端口并且它工作了(我已经将节点更改为http以使其工作).

我的最后一招将是将节点转换为Web服务器,但我希望保持简单,因为它很快就会重构并使用meteor.

我会感激任何建议

这是我对apache的配置

<VirtualHost *:443>

    ServerName secure.mysite.co.il
    ServerAdmin admin@mysite.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile /ssl/mysite.crt
    SSLCertificateKeyFile /ssl/mysite.key
    SSLCertificateChainFile /ssl/ca-bundle-client.crt

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /echo/test https://127.0.0.1:8001/echo/test
    ProxyPassReverse /echo/test https://127.0.0.1:8001/echo/test
Run Code Online (Sandbox Code Playgroud)

成功的http配置

<VirtualHost *:80>
    ServerAdmin admin@mysite.com
    ServerName mysite.co.il
    ServerAlias www.mysite.co.il
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / http://127.0.0.1:8001/
    ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

apache reverse-proxy mod-proxy http-proxy node.js

2
推荐指数
1
解决办法
5585
查看次数

使用 mod_auth_openidc 对自定义 Web 应用程序进行身份验证

我有一个在 apache 2.2 上运行的基本 Web 应用程序,没有任何身份验证。网站内容是静态网页。
我们的小组织目前正在致力于为所有网站实施mod_auth_openidc 。我想在基本静态 Web 应用程序之上
实现mod_auth_openidc身份验证。

我怎样才能实现它?我是 apache 配置和mod_auth_openidc
的新手。我在谷歌上搜索了一些文章来实现它,但我找不到任何文章。我在 Oauth2 服务器上为我的应用程序创建了一个静态帐户。

有人可以指出如何使用mod_auth_openidcmod_proxy配置为我的静态网页应用程序启用身份验证的正确方向吗?

<Location />
   AuthType openid-connect
   Require valid-user
</Location>
OIDCProviderMetadataURL https://example.com/fss/.well-known/openid-configuration
OIDCClientID ExampleCorp_Prod_web01
OIDCClientSecret <client-secret>
OIDCRedirectURI http://<ip>/redirect_uri
OIDCScope "profile openid"
OIDCCryptoPassphrase example@3003
OIDCCookiePath /
ProxyPass /  http://<ip>:8080/ nocanon
ProxyPassReverse / http://<ip>:8080/
ProxyRequests     Off
AllowEncodedSlashes on
<Proxy http://<ip>:8080/*>
</Proxy>
OIDCAuthNHeader X-Forwarded-User
OIDCRemoteUserClaim sub
OIDCClaimPrefix example_
LoadModule auth_openidc_module modules/mod_auth_openidc.so
Run Code Online (Sandbox Code Playgroud)

apache mod-proxy mod-auth-openidc

2
推荐指数
1
解决办法
8400
查看次数

Apache 代理问题上的 CORS(访问控制允许来源)

我需要从我的地图服务器(QGIS 地图服务器)发送一个 CORS 标头,该服务器在端口 8080 上使用带有 Apache 2.4.* 的快速 cgi。

我配置了一个简单的

<VirtualHost *:8080>
   [...]
   Header set Access-Control-Allow-Origin "*"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

它有效。

我想设置一个代理以避免在 URL 中指定端口。我在端口 80 中配置了另一个 Virtualhost:

<VirtualHost *:80>
    ProxyPass /cgi-bin/ http://localhost:8080/
    ProxyPassReverse /cgi-bin/ http://localhost:8080/

    # Is useful this?
    Header set Access-Control-Allow-Origin "*"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但标头不会传播。有解决办法吗?

apache proxy mod-proxy cors mod-headers

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

Apache websocket 重定向到 Tomcat:mod_proxy 和 mod_proxy_wstunnel

我正在尝试使用 mod_proxy 和 mod_proxy_wstunnel 模块将流量从 Apache 重定向到 Tomcat。HTTP 流量重定向没有问题,但我无法使用迄今为止尝试过的任何配置成功重定向 websocket 流量。

我正在使用 Apache 2.4.28 和 Tomcat 8.5.13

我必须说,当我在没有 Apache 的情况下使用 Tomcat 时,websockets 工作得非常好:

在此处输入图片说明

适用于此配置的 Tomcat 连接器是下一个:

<Connector URIEncoding="UTF-8"
        compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
        compression="on"
        compressionMinSize="1024"
        connectionTimeout="20000"
        noCompressionUserAgents="gozilla, traviata"
        port="443"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        SSLEnabled="true"
        scheme="https"
        secure="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="/opt/tomcat/cert/privkey.pem"
                         certificateFile="/opt/tomcat/cert/cert.pem"
                         certificateChainFile="/opt/tomcat/cert/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
Run Code Online (Sandbox Code Playgroud)

到此为止已经很清楚了。现在我在 Tomcat 前面启动一个 Apache 服务器,我改变的第一件事是像这样的 Tomcat 连接器:

<Connector URIEncoding="UTF-8"
    compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
    compression="on"
    compressionMinSize="1024"
    connectionTimeout="20000"
    noCompressionUserAgents="gozilla, traviata"
    port="8080"
    protocol="org.apache.coyote.http11.Http11AprProtocol">
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>
Run Code Online (Sandbox Code Playgroud)

在 Apache 中,我成功加载了下一个模块(我已经检查过它们确实已加载):

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module …
Run Code Online (Sandbox Code Playgroud)

apache tomcat mod-proxy websocket mod-proxy-wstunnel

2
推荐指数
1
解决办法
5319
查看次数

具有主动/被动设置的Apache HTTPD mod_proxy_balancer

我最近决定将Apache HTTPD(在CentOS-RPM版本httpd-2.2.3-45.el5.centos上)与mod_proxy和mod_proxy_balancer一起使用,以创建面向我的JBoss Application Server的软件负载平衡器。当前设置(请参阅下面的配置)似乎工作正常,并且两台服务器都在积极处理入站请求。

但是,我想设置一个主动-被动群集,其中一台服务器主动处理请求,一旦发生故障,它将故障转移到被动节点,从而使其成为主动节点。mod_proxy_balancer有可能吗?

我当前与此相关的httpd.conf段如下。

<Proxy balancer://mycluster>
       Order deny,allow
       Allow from all

       BalancerMember http://192.168.2.1:8080 route=node1
       BalancerMember http://192.168.2.2:8080 route=node2
</Proxy>


ProxyPass / balancer://mycluster/ lbmethod=byrequests stickysession=JSESSIONID|jsessionid

ProxyPreserveHost On
ProxyPassReverse /  http://192.168.2.1:8080/
ProxyPassReverse /  http://192.168.2.2:8080/
Run Code Online (Sandbox Code Playgroud)

提前致谢。

load-balancing apache2 mod-proxy

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

Apache,mod_auth_kerb,mod_proxy:在Go Web应用程序中获取经过身份验证的用户

我将Apache用作反向代理,以进行go http服务器前的身份验证之类的操作。

以下apache kerberos设置只能解决一个问题。我不知道如何在我的go应用程序中获取经过身份验证的用户名。

httpd.conf:

<VirtualHost host.domain.com:80>
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/

  <Location />
    ## gzip
    ##
    AddOutputFilterByType DEFLATE text/html

    Order                      deny,allow
    Allow                      from all

    AuthType                   Kerberos
    AuthName                   "User Admin"
    KrbAuthRealms              DOMAIN.COM
    Krb5Keytab                 /etc/host.krb5keytab
    KrbMethodNegotiate         on
    KrbAuthoritative           on
    KrbMethodK5Passwd          off
    KrbLocalUserMapping on
    KrbSaveCredentials         on
    require valid-user
  </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

 AuthType                    basic
Run Code Online (Sandbox Code Playgroud)

我使用go函数从请求的Authorization标头中获取用户名

func (*Request) BasicAuth
Run Code Online (Sandbox Code Playgroud)

但是与Authorization标头协商不可能。此外,由于没有cgi环境,因此我无法使用REMOTE_USER环境变量。我也尝试设置RequestHeader,但是没有成功。

是否有可能从go应用程序中获取授权的用户名?

apache mod-proxy go mod-auth-kerb

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