版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
配置Nginx与Tomcat以实现通过非标准端口(如81)访问HTTPS服务,并确保CSS、JS等静态资源能够正确加载,需要分两步进行:首先配置Nginx以监听HTTPS请求并转发到Tomcat,然后确保Tomcat应用中的资源引用是相对路径或正确处理了HTTPS和非标准端口。下面是具体步骤:
编辑Nginx的配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),添加或修改如下内容以支持HTTPS并通过81端口访问:
server {
listen 81 ssl;
server_name domain; # 将domain替换为你的域名
ssl_certificate /path/to/your/cert.pem; # SSL证书路径
ssl_certificate_key /path/to/your/key.pem; # SSL私钥路径
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 支持的SSL协议版本
ssl_ciphers HIGH:!aNULL:!MD5; # 加密套件
location / {
proxy_pass http://localhost:8080; # 假设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 $scheme;
}
}
记得将上述路径替换为实际的SSL证书和私钥路径。
Tomcat本身不需要直接配置HTTPS,因为HTTPS处理是在Nginx层面完成的。但是,为了确保项目中的CSS、JS等静态资源可以正常加载,你需要检查以下几点:
//domain:81/path/to/resource.css
而不是硬编码的http://
或端口号不正确的情况)。/test
),确保Nginx的proxy_pass
配置包含了正确的上下文路径,或者应用内部处理好资源的URL生成。如果项目中的CSS、JS等文件出现404错误,除了检查资源引用外,还需要确认: - Tomcat应用是否已正确部署这些静态资源。 - Nginx的location
配置是否正确匹配了请求路径,特别是当应用有特定的上下文路径时。 - 确保没有防火墙或其他网络设置阻止了对这些资源的访问。
完成以上配置后,重启Nginx和Tomcat服务,然后尝试访问https://domain:81/test
,应该可以看到页面及所有资源正常加载。