java request.getServerPort 与实际不一致

java request.getServerPort 与实际不一致

月光魔力鸭

2020-06-04 15:17 阅读 1124 喜欢 0 一句话文章 nginx

nginx 监听的服务器的9000 端口,转的443 到tomcat 中,但是在java web jsp中获取的端口却还是443.

nginx 配置

location /xxx{
        proxy_pass https://localhost:9020;
        client_max_body_size    1000m; 
        proxy_redirect    off;
        # 此处header 需要增加$server_port 即可
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header User-Agent $http_user_agent;
        proxy_set_header header_userid $http_header_userid;
        proxy_set_header user_type $http_user_type;
        #防止网页被Frame
        add_header X-Frame-Options SAMEORIGIN;
    }

修改:

proxy_set_header Host $host:$server_port;

此时再看jsp中的request.getServerPort() 就是当前监听的了。

转载请注明出处: https://chrunlee.cn/article/nginx-java-web-port.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
之前没接触过tigase,最近开始准备用这个来做IM ,开始预研..不过中间比较坎坷,虽然有忙别的事情,但是前前后后还是花了好几天的时间,资源太少,官网又看不懂,git还下不下来... 啥机制也不懂.. 真惆怅。
最近项目使用了spring-boot框架,在部署过程中出现了很多问题,这里记录下,防止后续遗忘。
记录下关于通过tomcat来配置https ,使java web项目可以直接通过https来访问,之前的时候都是走nginx来配置https,由于特殊原因443端口不能开启(具体是啥不清楚,运维不让开),只能如此配置下。
实际上,之前有对接过的... 但是忘记了,而且也没做详细记录,同时语言又换了.. 成java了,所有这里记录下,包括从微信的授权、token、以及到js-sdk 开发为止。
使用spring boot 来传递日期参数的时候,发现报错。顺手记录。
项目为nginx+tomcat 部署的,由于需要https环境,本来直接配置nginx https就可以了,结果在jsp 中获取request.getScheme 怎么都是http .. 可把我这个假运维愁坏了。
这只能算是一个小实现吧 ,也不算什么难点,就是加强下记忆,后续查找方便点而已,当然也有可能给你提供个小灵感啥的,那就再好不过了。
项目为长期稳定运行中,由于新增功能或修复BUG,修改代码后无法启动。根据添加的代码删减,最后确认出的问题。