最近,我获得了一个在Apache HTTP服务器和WildFly上运行的项目。我对这些技术不熟悉。我在Apache端有代理配置问题。这是Apache的httpd.conf VirtualHosts配置。
#frontend
<VirtualHost *:80>
<Location />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Location>
ServerName adminapp.pl
DocumentRoot "D:\Projects\RS_front\adminapp"
ErrorLog "d:\logs\httpd\admin_error.log"
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(/index\.html|/img|/js|/css|/assets|/robots\.txt|/favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</VirtualHost>
#backend proxy
<VirtualHost *:80>
<Location />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Location>
ServerName api.adminapp.pl
ErrorLog "d:\logs\httpd\wildflyProxy.log"
CustomLog "d:\logs\httpd\wildflyProxy_custom.log" combined
ForensicLog "d:\logs\httpd\wildflyProxy_forensic.log"
DumpIOInput On
DumpIOOutput On
LogLevel Debug
ProxyRequests Off
ProxyPreserveHost On
#adres aplikacji and serwerze Wildfly
ProxyPass "/" "http://localhost:8080/adminapp/" timeout=600
ProxyPassReverse "/" "http://localhost:8080/adminapp/" timeout=600
ProxyPassReverseCookiePath "/adminapp" "/"
Header add Access-Control-Allow-Origin: adminapp.pl
Header add Access-Control-Allow-Headers "X-Requested-With,Content-Type,Authorization,Accept,Content-Disposition"
Header add Access-Control-Allow-Methods "GET,PUT,POST,DELETE,PATCH,OPTIONS"
</VirtualHost>
我尝试通过adminapp登录系统,但它不起作用。我觉得完全迷失了,因为我无法跟踪任何错误或日志,告诉我这个配置有什么问题。
这是我到目前为止跟踪的内容(地址adminapp.pl&amp; api.adminapp.pl映射到我的hosts文件中的localhost):
登录尝试时应调用的网址如下http://localhost:8080/adminapp/oauth/token。当我在浏览器中输入此URL时,我从WildFly服务器得到了响应,我提供了错误的登录凭据和WildFly服务器日志异常。
当我在浏览器中输入网址http://api.adminapp.pl/oauth/token时,我会从服务器获得相同的响应。所以似乎代理工作。
当我尝试通过adminapp.pl登录时,提供错误的凭据以实现相同的错误,没有任何反应。我在Apache访问日志中只得到这一行&#34; POST /api.adminapp.pl/oauth/token HTTP / 1.1&#34; 200 906&#34;。
当我配置front - adminapp.pl直接连接到http://localhost:8080/adminapp(NO PROXY)时,WildFly服务器记录错误凭据错误。但是前面还有其他问题&#34; XMLHttpRequest无法加载http://localhost:8080/adminapp/oauth/token。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; http://localhost&#39;因此不允许访问。&#34;。我想这是由于CORS引起的,所以我的配置需要代理。
从我的配置中可以看出,我尝试生成尽可能多的日志,但我无法找到更多有用的信息。似乎Apache在内存中缓冲日志并按时间间隔将它们转储到文件中?有没有办法告诉Apache在收到信息后立即记录信息?
总结我需要设置此代理,并且不知道如何进一步解决我的问题。你能告诉我我能做些什么吗?
此致
答案 0 :(得分:0)
我设法解决了这个问题。事实证明,我的应用正在尝试向http://adminapp.pl/api.adminapp.pl/oauth/token而不是http://api.adminapp.pl/oauth/token发送请求。前端应用程序处理属性url api.adminapp.pl相对而且我不得不将其更改为http://api.adminapp.pl。带有Firebug插件的Firefox派上用场,向我展示了完整的POST网址。