一、前言

很多时候我们都会在同一个服务器上部署多个项目,我们有多个域名的情况下,怎么样使不同的域名都通过80端口来访问呢?打个比方说,现在有2个域名,分别是:tessai.cn 和 admin.tessai.cn 。tessai.cn 访问可以访问到一个web地址,admin.tessai.cn 可以访问到后台管理的项目。这个如果监听不同的端口来实现,肯定是很方便的,比如说一个使用 8080 端口,一个使用 80 端口,然后再使用 nginx 监听不同的端口就行了。但是这样不是我们想要的效果呀。谁访问网站喜欢使用域名加端口来访问呢。这篇博客主要是记录一下怎么使用 nginx 监听同一个端口,访问不同的服务,顺便记录一下 Java 后台怎么获取到访问的 IP。

二、正文

1、nginx 中配置如下

http {    ...server {listen       80;proxy_set_header  X-Real-IP  $remote_addr; #记录远程访问ip,方便应用中获取 server_name  tessai.cn;location / {proxy_pass      http://127.0.0.1:8080; #将域名为tessai.cn的请求分发到本地8080端口的服务}}server {listen       80;proxy_set_header  X-Real-IP  $remote_addr; #记录远程访问ip,方便应用中获取server_name  admin.tessai.cn; location / {proxy_pass      http://127.0.0.1:8081; #将域名为admin.tessai.cn的请求分发到本地8081端口的服务}}
}

2、由于使用了nginx作为代理,在后台应用服务中直接采用request.getRemoteAddr(),无法获取到请求所处的真实ip,需要通过下面的代码获取:

private String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("X-Real-IP");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("x-forwarded-for");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;
}

三、结尾

本文到此结束,如果想看更多精彩好文,福利图片,可移步:http://wjhsmart.vip。建站不易,大家可以互踩哦,如果有需要博主互联的可以给博主留言。

Nginx配置多个域名指向不同的端口相关推荐

  1. nginx 配置多个域名 指向不同服务_Nginx的几个常用配置和技巧

    文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了! 一个站点配置多个域名 server { listen 80; server_name ops-coffee.cn b ...

  2. Nginx配置 多个域名指向同一个服务器文件

    这里写自定义目录标题 目的 准备工作 修改内容 注意: 目的 因为公司开发方面有响应的需求,需要多个域名指向同一个服务器下的文件(即访问的域名不同但访问的服务器下的文件是同一个) 准备工作 已经过解析 ...

  3. 1 阿里云Nginx配置https实现域名访问项目

    第一步:签署第三方可信任的 SSL 证书 证书可以直接在阿里云里面申请免费的ssl证书 登录阿里云账号,在上方搜索栏内搜索ssl,点击ssl证书(应用安全) 来到这个页面后点击购买证书 如图选择免费版 ...

  4. Windows环境下Nginx配置本地虚拟域名和Nginx代理

    Windows环境下Nginx配置本地虚拟域名和Nginx代理 一.准备 (1) 进入 Nginx 安装目录,如:E:\GreenSofts\Nginx-1.21.4 (2) 检查当前目录下是否存在 ...

  5. nginx配置动态ssl域名转发

    nginx配置动态ssl域名转发 应用场景 具体需求描述 网关配置 遇到的问题 应用场景 作为第三方站点服务供应商,我们需要每天对接大量的第三方域名及其ssl证书,如果我们为每个客户的域名配置一个se ...

  6. 微信支付:nginx配置 网页授权域名 用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。

    nginx配置图

  7. Linux上nginx配置SSL协议非80、443端口自动跳往https端口

    在生产环境中往往碰到一个网站需要多个访问端口,而默认的http访问端口是80,https访问的端口是443,然而这是不够在生产环境下使用的,这个时候就需要配置更多的端口来弥补这一缺点. 默认情况下用户 ...

  8. nginx 配置两个域名

    1.首先第一步安装: 参考:https://www.cnblogs.com/wyd168/p/6636529.html 启动: /usr/local/nginx/sbin/nginx -c /usr/ ...

  9. nginx配置本地地址映射域名以及域名转发指定ip

    首先安装nginx,参加博客:https://www.cnblogs.com/qfb620/p/5508468.html 按照博客写的访问127.0.0.1查看是否访问成功,成功即安装成功. 下一步就 ...

  10. Nginx配置之基于域名的虚拟主机

    1.配置好DNS解析 [root@server ~]# cat /etc/redhat-release  Red Hat Enterprise Linux Server release 6.2 (Sa ...

最新文章

  1. scss安装_安装了这9个免费PS插件后,终于能正常时间下班了……
  2. 公钥密码--Diffie-Hellman密钥协商算法
  3. python3 join函数_Python中.join()和os.path.join()两个函数的用法详解
  4. 区块链技术指南笔记(二):区块链技术
  5. OC-NSArray
  6. 数字签名和数字信封之间的介绍
  7. AP 1532E register   Cisco 2504 AP注册WLC
  8. restful get不传参数404_flask-restful编写上传图片api
  9. 关于JavaScript DOM 编程艺术这本书
  10. RemObjects SDK 简介
  11. 《21天学通C语言(第7版)》一6.6 课后研习
  12. 21世纪什么最值钱?“人脸”
  13. 前端人脸识别框架tracking.js,解决ios浏览器调摄像头黑屏的问题,兼容pc、安卓、ios。
  14. iOS 15 更新,图标改版
  15. 商标注册申请怎么填写商品名称
  16. PHP 警告 Warning: Unknown: Input variables exceeded 1000. 解决方法
  17. 风口起落的背后,是6271家创业公司的消亡
  18. android11开发版小米,小米CC9推送MIUI 12.5稳定版 新版系统内核升级至安卓11
  19. 苏黎世联邦理工学院计算机科学系,苏黎世联邦理工大学专业设置
  20. Homekit智能灯泡

热门文章

  1. android当电脑麦克风,电脑没有麦克风?让手机充当电脑麦克风!
  2. aip格式转化为pdf_aip文件阅读器
  3. Android视频播放器开发
  4. 差点跑进奥运会赛场的“人类计算机之父”
  5. 计算机演示文稿实验报告,演示文稿实验报告
  6. 桌面虚拟化 VMware Horizon View 7 安装部署指南 云办公系统安装部署
  7. pdf密码忘了怎么解除
  8. Window环境下 Jenkins Master/Slaver模式 + Svn 部署
  9. @Deprecated注解
  10. 面试高并发,凉了!!(全程高能,建议收藏)