我使用apache和Lucee(tomcat)。我有一个我想要在基本身份验证后面的开发站点。我有apache configure和非ColdFusion页面需要并提示进行身份验证。当我导航到CF页面时,不需要基本身份验证。
我需要修改哪些Tomcat / Lucee配置文件,以便在设置其他基本身份验证时使用apache基本身份验证?
我正在运行Apache / 2.4.10(Debian)
这是我的网站配置文件:
<VirtualHost *:80>
ServerName dev.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite.com/dev/docroot
<Directory /var/www/mysite.com/dev>
Options Indexes FollowSymLinks
AllowOverride All
AuthName "Secured Development Environment"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
DirectoryIndex index.cfm index.html
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这是Lucee添加到我的apache2.conf文件中的内容
<IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
# optional mappings
#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
ProxyPassReverse / http://127.0.0.1:8888/
</IfModule>
这是我的更新配置基于建议
我根据您的建议更新了我的配置,但它没有解决问题。
<VirtualHost *:80>
ServerName dev.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite.com/dev/docroot
<Directory /var/www/mysite.com/dev>
Options Indexes FollowSymLinks
AllowOverride All
AuthName "Secured Development Environment"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
DirectoryIndex index.cfm index.html
</Directory>
<IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassReverse / http://127.0.0.1:8888/
</IfModule>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这不起作用,我不确定它有什么不同,因为虚拟主机包含在IfModule之前
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
答案 0 :(得分:1)
请求在发送到VirtualHost之前被代理到Tomcat。在<IfModule>
定义之后将<VirtualHost>
内容移动到<Directory>
。您需要为每个虚拟主机执行此操作,因此您可能希望将其弹出到单独的文件中,然后包含在使用Include指令中。
还可以尝试添加:
<Limit GET POST>
order deny,allow
satisfy any
deny from all
require valid-user
</Limit>
在Require valid-user
行之后。