我有一个奇怪的问题......
我的Vaadin应用程序在我的计算机上工作正常(本地).我刚刚部署了网站,现在我遇到了一个问题:
<!Doctype html>第一行中的标记丢失.我不知道为什么会这样,但我认为这会导致一些问题,因为网站以Quirks模式显示.
有趣的是,当我在本地运行应用程序时,会设置doctype标记.
我只是将应用程序导出到war文件并进行部署.
到目前为止,我还没有在互联网上找到任何解决方案......
这是Tomcat设置问题还是其他什么?
我在 Apache 中使用了“转发代理”。我想在传递请求之前更改请求标头的一部分。例如,我想更改标题中的主机参数。我在 httpd.conf 中使用了这部分配置,但在传递请求之前它不会更改标头。
Listen 7654
<VirtualHost *:7654>
RequestHeader set Host "test.com"
ProxyRequests On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我必须将sails.js放在80端口,但是apache已经在使用它了.如何将两个(sails.js和apache)放在同一个端口80上?我需要它,因为在我的公司中除了PORT 80之外所有端口都被阻止.(这是一个带有nodejs和socket.io(websockets)的实时应用程序,另一方面是一个php应用程序).非常感谢
我正在尝试使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 2.2 上运行的基本 Web 应用程序,没有任何身份验证。网站内容是静态网页。
我们的小组织目前正在致力于为所有网站实施mod_auth_openidc 。我想在基本静态 Web 应用程序之上
实现mod_auth_openidc身份验证。
我怎样才能实现它?我是 apache 配置和mod_auth_openidc
的新手。我在谷歌上搜索了一些文章来实现它,但我找不到任何文章。我在 Oauth2 服务器上为我的应用程序创建了一个静态帐户。
有人可以指出如何使用mod_auth_openidc和mod_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) 我需要从我的地图服务器(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)
但标头不会传播。有解决办法吗?
我正在尝试使用 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 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)
提前致谢。
我将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应用程序中获取授权的用户名?