开发者社区 问答 正文

【求助】nginx + tomcat配置https,自定义非443端口

  • nginx + tomcat配置https,自定义非443端口,怎么配置呢?要实现这种访问https://domain:81/test 格式。
  • 如果问题1已经配置了,但是为啥项目中css,js等文件404?

展开
收起
JaneYork 2021-04-15 13:31:03 956 分享 版权
阿里云 AI 助理回答

要配置Nginx与Tomcat以实现通过自定义非443端口(例如81端口)访问HTTPS服务,并解决项目中CSS、JS等静态文件404的问题,请按照以下步骤操作:

Nginx配置

  1. 编辑Nginx配置文件

    • 打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或相应的.conf文件。
    • 添加或修改一个server块来监听81端口并启用SSL。确保替换证书路径和私钥路径为实际值。
    server {
       listen 81 ssl;
       server_name your_domain.com; # 替换为你的域名
       ssl_certificate /path/to/your/certificate.crt;
       ssl_certificate_key /path/to/your/private.key;
    
       location /test {
           proxy_pass http://localhost:8080/test; # 假设Tomcat运行在8080端口,根据实际情况调整
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto https;
       }
    }
    
  2. 处理静态资源问题:确保Nginx配置正确地转发到Tomcat上的静态资源。如果CSS、JS等文件返回404,检查以下几点:

    • 确认Tomcat应用中的静态资源路径是否正确,以及Tomcat配置是否允许访问这些资源。
    • 在Nginx配置中,确认是否有正确的location规则来直接处理或正确代理到Tomcat的静态资源目录。
  3. 重启Nginx

    sudo systemctl restart nginx
    

Tomcat配置

  1. 修改Tomcat的Connector配置

    • 打开Tomcat的server.xml文件,找到或添加一个HTTPS Connector,设置其port为81(或您选择的非标准端口),并指向正确的SSL证书。
    <Connector port="81" protocol="org.apache.coyote.http11.Http11NioProtocol"
              maxThreads="150" SSLEnabled="true"
              scheme="https" secure="true" clientAuth="false" sslProtocol="TLS">
       <SSLHostConfig>
           <Certificate certificateKeystoreFile="/path/to/your/certificate.p12"
                        type="PKCS12" password="your_password"/>
       </SSLHostConfig>
    </Connector>
    

    注意:请根据您的证书类型调整certificateKeystoreFile的路径和类型参数。

  2. 静态资源映射:确保Tomcat应用上下文和静态资源映射正确无误,避免因路径不匹配导致的404错误。

  3. 重启Tomcat: 根据您的系统和服务管理方式,执行相应命令重启Tomcat服务。

验证与测试

  • 访问https://your_domain:81/test,验证页面及其中的CSS、JS等静态资源是否能正常加载。
  • 检查浏览器控制台网络面板,确认没有资源加载错误。

注意事项

  • 安全性:确保使用有效的SSL证书,并定期更新,维护连接安全。
  • 防火墙设置:如果配置后仍然无法访问,检查服务器的防火墙设置,确保81端口对HTTPS流量开放。

通过上述步骤,您可以配置Nginx与Tomcat以通过自定义端口提供HTTPS服务,并解决静态资源404问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答