我有一个tomcat,监听端口8080,还有一个apache httpd监听端口80和443。
httpd通过ajp将客户端代理给tomcat。这很有魅力。
上面引用的我的声明是错误的。我错误地假设我将代理设置为使用ajp协议,但我确实使用了纯http。这也引出了这个问题的答案。
但是,如果我试图通过https连接,我会得到一个安全的连接,它显示一个错误500,没有记录在任何地方。我的猜测是,https连接到http(443)工作,ajp-代理也工作,但tomcat期待一些我不知道的东西。
我已经尝试将代理连接到端口8443和8080。在我看来,在端口8080上访问tomcat就足够了,因为所有的流量都是通过httpd重定向的。
以下是配置:
/etc/apache2/sites-available/default-ssl
<IfModule mod_ssl.c>
ErrorLog /var/log/apache2/ssl_engine.log
LogLevel error
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.doma.in
ServerAlias doma.in
ServerSignature Off
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl_certificate.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl_certificate.key
SSLCertificateChainFile /etc/ssl/certs/intermediate_ca.crt
ProxyPass / ajp://localhost:8080/ retry=0 timeout=240
ProxyPassReverse / ajp://localhost:8080/
</VirtualHost>
</IfModule>
/etc/tomcat7/server。xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URLEncoding="UTF-8" />
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8080" URLEncoding="UTF-8" /> also tried this, but same result. -->
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>
</Engine>
</Service>
</Server>
不幸的是,我不能提供任何日志,因为错误没有出现在任何日志中。
有什么想法如何使这项工作?
真诚地
答案很简单。我不使用ajp,但在未加密的网站上做一个简单的超文本传输协议代理。
因此,最终有效的代码是:
<IfModule mod_ssl.c>
ErrorLog /var/log/apache2/ssl_engine.log
LogLevel error
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.doma.in
ServerAlias doma.in
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl_certificate.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl_certificate.key
SSLCertificateChainFile /etc/ssl/certs/intermediate_ca.crt
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
</IfModule>
不过,就性能而言,ajp协议比这更可取。
我阅读了很多关于如何配置tomcat来使用SSL的教程。 我在http://localhost:8080和http://localhost:8443中访问我的应用程序,但我不能在https://localhost:8443中访问。 我用的是阿帕奇语。 key.keystore文件可以工作,因为它在其他JBoss应用程序中使用。 Bellow是server.xml配置中的新连接器。
我尝试用JSF 2.3.3(Glassfish实现)测试新的WebSocket功能。我使用 Tomcat 9.0.1 作为 Web 服务器并遵循本指南(https://javaserverfaces.github.io/whats-new-in-jsf23.html) 我创建了一个托管bean: 更新的index.xhtml: 并更新了web.xml: 不幸的是,Tomcat加载应用程序失败,出现
我们在windows 10机器上从Tomcat 9.0.29升级到9.0.44,并收到503条错误消息。Tomcat托管Java应用程序。对Tomcat服务器的请求作为工作线程从单独的Apache代理服务器通过端口8010发送。我可以看到Tomcat服务正在运行,Java应用程序正在启动并运行。这可以从Tomcat服务器上的//localhost:8080/{JavaApp}进行验证。 但是,来自
我正在使用windows命令提示符,我刚刚安装了一个新的rails项目。我在尝试安装gem时出错了。上面写着 错误:找不到有效的gem“bundler” 我该如何解决这个问题?
环境:Windows 2003 Server-64位 服务器名称:devtest.domain.local Apache Tomcat 6.0.36服务器-http://Tomcat.apache.org/(Windows) 孙Java JDK:jdk1.6.0_26 同时定义%CATALINA_HOME%和%JAVA_HOME%. 正在为我们的证书颁发机构生成CSR.. 是的,我知道服务器名:d
问题内容: 我有一台运行Java servlet的Tomcat服务器。我正在尝试使一个servlet返回给定的加密ID的存储文件。 编号:100 加密的ID:+ e4 / E5cR / aM = 网址编码的ID:%2Be4%2FE5cR%2FaM%3D 结果URL:http:// localhost / file / demo /%2Be4%2FE5cR%2FaM%3D 当我尝试访问该链接时,我什