GVKun编程网logo

Tomcat cookie无法通过我的ProxyPass VirtualHost工作

15

如果您对Tomcatcookie无法通过我的ProxyPassVirtualHost工作感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Tomcatcookie无法通过我的ProxyPassVi

如果您对Tomcat cookie无法通过我的ProxyPass VirtualHost工作感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Tomcat cookie无法通过我的ProxyPass VirtualHost工作的各种细节,此外还有关于Android Webview Cookie无法像Chrome一样工作、apache mod_proxy,为跨域Ajax调用configurationProxyPass&ProxyPassReverse、Apache NameVirtualHost *:80 has no VirtualHosts问题解决办法、Apache VirtualHost配置的实用技巧。

本文目录一览:

Tomcat cookie无法通过我的ProxyPass VirtualHost工作

Tomcat cookie无法通过我的ProxyPass VirtualHost工作

使用ProxyPass将端口80上的流量重定向到通过Tomcat托管的Web应用程序时,使cookie工作时遇到一些问题。

我启用cookie的动机是摆脱URL后面附加的“ jsessionid =”参数。

我已经为我的Web应用程序在META-INF /的context.xml中启用了cookie。
当我通过http:// url:8080 / webapp访问Web
应用程序时,它可以按预期运行,但jsessionid参数在URL中不可见,而是存储在cookie中。

当通过apache2虚拟主机访问我的网站时,cookie似乎不起作用,因为现在将“ jsessionid”附加到了URL上。我该如何解决这个问题?

这是我的VHost配置:

<VirtualHost *:80>        ServerName somedomain.no        ServerAlias www.somedomain.no        <代理*>                拒绝订单,允许                全部允许        </ Proxy>        ProxyPreserveHost关闭        ProxyPass / http:// localhost:8080 / webapp /        ProxyPassReverse / http:// localhost:8080 / webapp /        错误日志/var/log/apache2/somedomain.no.error.log        CustomLog /var/log/apache2/somedomain.no.access.log合并</ VirtualHost>

编辑:cookie实际被设置。我猜问题是cookie包含“路径:/ webapp”。

答案1

小编典典

我想到了。

将此添加到VHost配置:

ProxyPassReverseCookiePath / webapp /

Android Webview Cookie无法像Chrome一样工作

Android Webview Cookie无法像Chrome一样工作

如何解决Android Webview Cookie无法像Chrome一样工作?

我有一个页面,其中包含一些复选框以标记为投票目的。当使用chrome并投票打开此页面时,重新打开该页面后将显示复选框标记的正确状态。但是当使用android webview做同样的事情时,它不起作用。 对此可以有任何帮助。 我已经为cookiemanager.setAcceptCookie(true)cookieManager.setAcceptThirdPartyCookies(webview,true)添加了代码,但是没有用。

在android webview中重新打开并单击其他组件并返回更改后,该更改也反映出来。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

apache mod_proxy,为跨域Ajax调用configurationProxyPass&ProxyPassReverse

apache mod_proxy,为跨域Ajax调用configurationProxyPass&ProxyPassReverse

我正在创build一个html5 – JavaScript应用程序(用于移动设备,使用PhoneGap)。 我必须与REST服务进行交互。

该服务现在运行在"http://localhost:8080/backend/mvc/"

我正在开发我的应用程序在一个wamp服务器(apache2)( http://localhost/stage/ )我正在使用Chrome浏览器。

在执行ajax调用时,浏览器响应: XMLHttpRequest cannot load http://localhost:8080/backend/mvc/event. Origin http://localhost is not allowed by Access-Control-Allow-Origin. XMLHttpRequest cannot load http://localhost:8080/backend/mvc/event. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

飞行前OPTIONS请求故障转移HTTPS

Nginx和CORS问题

Apache和Nodejs跨域ajax问题

同一域(本地主机)上的XHR跨域错误

访问控制允许起源不允许起源 – 如何使用一个非常简单的networking堆栈和guice启用CORS

所以我find几种方法来规避这个跨域的Ajax调用问题:

1)启动chrome chrome.exe --disable-web-security =>没有区别

2)使用mod_proxyconfigurationApache来redirectstream量。

我在httpd.conf中启用了:

proxy_module proxy_connect_module proxy_http_module

我把一个.htaccess文件放在www的根目录下,内容如下:

# start mod_rewrite RewriteEngine On ProxyRequests off <Proxy> Order deny,allow Allow from all </Proxy> ProxyPass /EMBackend/ http://localhost:8080/backend/mvc/ ProxyPassReverse /EMBackend/ http://localhost:8080/backend/mvc/ RewriteRule ^/EMBackend/(.*)$ /backend/mvc/$1 [R]

我重新启动所有服务(Apache,PHP,..)

导致错误500

apache错误日志: [Tue Oct 18 14:30:11 2011] [alert] [client 127.0.0.1] C:/wamp/www/.htaccess: ProxyRequests not allowed here

任何线索如何解决这个问题?

在Apache中使用Access-Control-Allow-Origin标头处理多个域

设置Nginx允许跨域请求子域

绕过“选项请求”的authentication(所有的头都在响应中发送)

跨域jQuery AJAXfile upload

跨域分块上传使用CORS

我发现一个工作解决方案:

启用:

Loadmodulee proxy_module modules/mod_proxy.so Loadmodulee proxy_http_module modules/mod_proxy_http.so

把它放在你配置的主要部分(或者如果使用Apache虚拟主机,则需要虚拟主机):

ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /EMBackend http://localhost:8080/backend/mvc ProxyPassReverse /EMBackend http://localhost:8080/backend/mvc <Location /EMBackend> Order allow,deny Allow from all </Location>

所以我想我不能把它放在.htaccess或我必须设置ProxyPreserveHost On 。 我将Include conf/extra/放在httpd.conf文件中,并创建了httpd-proxy.conf文件,并将其放在上面的脚本中。 重新启动Apache,它的工作!

启用代理模块后,您可以简单地在httpd.conf中添加给定的行。

ProxyPreserveHost On ProxyPass /EMBackend http://localhost:8080/backend/mvc ProxyPassReverse /EMBackend http://localhost:8080/backend/mvc

只需重新启动服务器,你就完成了。

在非常现代的Apache中,通过以下方式打开代理:

a2enmod proxy; a2enmod proxy_http

Apache NameVirtualHost *:80 has no VirtualHosts问题解决办法

Apache NameVirtualHost *:80 has no VirtualHosts问题解决办法

当启动apache的时候,如果事件管理器出现“Apache NameVirtualHost *:80 has no VirtualHosts”错误时,大部分是因为修改了apache的httpd.conf配置文件,将extra/vhosts.conf文件引入到httpd.conf中了。

复制代码 代码如下:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

httpd-vhosts.conf文件中有一句配置语句为

复制代码 代码如下:

NameVirtualHost *:80

如果httpd-vhosts.conf中没有存在类似:
复制代码 代码如下:

<VirtualHost *:80>
    ServerAdmin webmaster@jb51.net
    DocumentRoot "D:/WAPM/www"
    ServerName www.jb51.net
    ServerAlias www.jb51.net
    ErrorLog "logs/www.jb51.net-error.log"
    CustomLog "logs/www.jb51.net-access.log" common
</VirtualHost>

配置节,就会在事件管理器中出现Apache NameVirtualHost *:80 has no VirtualHosts错误。加上同上面的配置节就不会出现这个错误了。

您可能感兴趣的文章:

Apache VirtualHost配置

Apache VirtualHost配置

以lampp环境为例子,其他环境只是配置文件的路径不同。

先要在 lampp/etc/httpd.conf ( 这个是Apache 总的配置文件)中,将虚拟路径的注释去掉。

#Include etc/extra/httpd-vhosts.conf

使httpd-vhosts.conf文件起作用,或者直接在httpd.conf中写配置也可以,但不建议这么做。

相关的配置有:Listen NameVirtualHost <VirtualHost>

1. Listen 要监听的端口,多个端口,要写多个Listen;否则Apache启动的时候,不会启动相应的套接字。

比如

Listen 80

Listen 8080

2.NameVirtualHost 如果没有这个,<VirtualHost>标签就没什么作用。

一个NameVirtualHost 可以对用多个<VirtualHost>,每个<VirtualHost>必须有自己的NameVirtualHost(我猜的)

NameVirutalHost *:80

制定这个主机的IP和端口,如果服务器上有多个IP,就可以制定某个IP的某个端口是哪个 主机。

(新版的Apache已经去除了NameVirtualHost 这个配置,因为确实没什么用,参数在VirtualHost中都已经指明了)

3 最关键的VirtualHost

重要:Apache 在接受到请求时,首先会默认第一个VirtualHost,然后再找匹配的,如果没有匹配的,就是第一个VirtualHost起作用。

因此在httpd.conf中,将<Dicrectory />(这个是所有目录的默认配置)

和 <Direcotry /opt/lampp/htdocs>的权限,都是deny from all.作为默认。

所以,我的第一个VirtualHost是

<VirtualHost *:80>

ServerName *

DocumentRoot </opt/lampp/htdocs/guest>

<Directory /opt/lampp/htdocs/guest>

Order deny,allow

Allow from all

</Direcotry>

<VirtualHost/>

后面的,依次添加就可以

<VirtualHost *:80>

ServerName www.myweb1.com

DocumentRoot </opt/lampp/htdocs/myweb1>

<Directory /opt/lampp/htdocs/myweb1>

Order deny,allow

Allow from all

</Direcotry>

<VirtualHost/>

今天的关于Tomcat cookie无法通过我的ProxyPass VirtualHost工作的分享已经结束,谢谢您的关注,如果想了解更多关于Android Webview Cookie无法像Chrome一样工作、apache mod_proxy,为跨域Ajax调用configurationProxyPass&ProxyPassReverse、Apache NameVirtualHost *:80 has no VirtualHosts问题解决办法、Apache VirtualHost配置的相关知识,请在本站进行查询。

本文标签:

上一篇如何在context.xml中存储字符串值(context.xml作用)

下一篇使用WTP更改Eclipse的内置tomcat context.xml文件吗?(eclipse修改tomcat配置)