`
yangwei0915
  • 浏览: 465196 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

nginx反向代理后,获取hostname不正确的问题

 
阅读更多

在nginx上配置了反向代理后,在被代理主机上查看request的serverName 得到的被代理主机的hostname,而不是用户原始请求的hostname。解决这个问题,需要进行如下配置(假设反向代理的路径为/,真实的访问地址为http://localhost:8080):

location / {
            proxy_pass   http://localhost: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这三个配置,在被代理主机上获取的hostname是localhost:8080,不是用户原始请求的hostname。

分享到:
评论

相关推荐

    详解nginx配置url重定向-反向代理

    二、nginx 反向代理 1、地址重定向:是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网址,转成较短的网址。因为当要传播某网站时,常常因为网址太长,不好记忆;又有可能因为换了...

    Nginx+Tomact集群部署

    - **Nginx**:是一款高性能的HTTP服务器及反向代理服务器,同时也是邮件代理服务器。Nginx以其出色的稳定性、丰富的功能集、简单的配置方式和较低的资源消耗而闻名。 - **Apache Tomcat**:简称Tomcat,是Apache软件...

    ceryx:基于NGINX OpenResty和API的动态反向代理

    Ceryx-坚固,可编程的HTTP(S)反向代理 Ceryx是坚如磐石的可编程反向代理,用于为成千上万的项目提供其独特的,启用HTTPS的公共URL。 高层架构 Ceryx坚如磐石的主要特征之一就是其设计的简洁性。 Ceryx由两个组件...

    nginx中对指定的IP不使用密码对区域外IP使用密码.docx

    7. `proxy_pass`、`proxy_redirect`和`proxy_set_header`指令:这些是Nginx作为反向代理时使用的,将请求转发给后端服务器,并设置相应头信息。 8. `error_page`指令:当发生404或503错误时,Nginx将返回指定的页面...

    Nginx安装包

    Nginx的反向代理 http://www.cnblogs.com/zhrxidian/p/5491285.html tomcat+nginx+redis实现均衡负载、session共享(二) 今天我们接着说上次还没完成session共享的部分,还没看过上一篇的朋友可以先看下上次内容,...

    解析ip,用户给一个请求,获取用户的ip,浏览器,操作系统等信息

    然而,如果应用部署在反向代理服务器如Nginx或Apache后面,`getRemoteAddr()`可能会返回代理服务器的IP而非用户的真实IP。为解决这个问题,我们可以检查`X-Forwarded-For`头,它通常会包含用户的原始IP地址: ```...

    Nginx + Redis配置session共享.docx

    Nginx作为反向代理和负载均衡器,可以根据配置将用户请求分发到不同的Tomcat服务器。为了实现Session共享,Nginx需要配置 sticky 模块,使同一用户的所有请求始终路由到处理其首次请求的服务器,这样可以保证Session...

    python监控nginx端口和进程状态

    1. **hostname()**: 这个函数用于获取主机的名称,这在日志记录或者定位问题时非常有用。它根据操作系统的类型(如Windows或Linux)采用不同的方法来获取主机名。 2. **processStatus(processName)**: 这个函数用于...

    Vue项目配置跨域访问和代理proxy设置方式

    另外,对于生产环境,如果不想配置nginx反向代理,可以考虑使用Node.js配合Express框架作为代理服务器,进行路由转发。Node.js作为中间件可以灵活处理不同来源的请求,并且可以进一步扩展功能如日志记录、访问控制等...

    详解Nginx虚拟主机配置中server_name的具体写法

    Nginx是一款高性能的HTTP和反向代理服务器,它广泛被用作网站的静态内容服务器。而Nginx虚拟主机配置是指通过配置文件来实现多个网站或应用共享同一服务器资源的技术。在Nginx虚拟主机配置中,server_name是一个非常...

    详解Ngigx+Tomcat配置动静分离,负载均衡

    在Ngigx+Tomcat的配置中,Nginx作为反向代理服务器,负责接收客户端的请求,然后根据请求的内容是静态还是动态,将请求转发到相应的服务器。Nginx对静态资源的处理能力强,且能缓存静态文件,因此常被用作静态资源...

    dcos-proxy:DCOS前端代理

    dcos-proxy DCOS前端代理这是一个基于Nginx的反向负载均衡器,旨在在Mesosphere DCOS集群的公共从属节点上运行。 有一个用于运行平衡器的示例json文件,您可以将其用于: dcos marathon app add frontend-balancer....

    Linux系统标准化配置手册v1.2.pdf

    - Nginx服务配置:配置Nginx作为Web服务器或反向代理服务器,优化nginx.conf参数以提高性能。 - 系统审计服务:启用系统审计功能,记录系统活动,便于事后检查和分析。 6. 数据同步与备份 - Rsync+Sersync:配置...

    chef-stager:厨师食谱来设置 stager https

    要求食谱apt - 使 repos 与 apt 食谱保持同步build-essential - 我们需要构建工具docker - 运行容器nginx - 用作反向代理runit - 进程监督流浪插件如果你想在 Vagrant 中运行 stager,你需要以下插件。安装上述插件...

    python框架django项目部署相关知识详解

    在生产环境中,通常采用的是nginx(一个高性能的Web服务器和反向代理服务器)与uWSGI(一个应用服务器,专门处理动态内容)的组合。nginx主要负责处理静态文件,如CSS、JavaScript、HTML和图片,而uWSGI则负责处理...

    CentOS 系统配置 (各种服务配置 软件安装 )汇总

    - **Nginx**:配置代理、反向代理,修改`/etc/nginx/nginx.conf`。 - **MySQL/MariaDB**:设置数据库用户、权限,配置`my.cnf`优化性能。 - **SSH**:安全的远程登录服务,`/etc/ssh/sshd_config`中调整参数,如...

    Kubernetes的有状态服务实践.docx

    - **稳定的身份和网络**:每个StatefulSet中的Pod都有一个唯一的、持久的hostname,且Pod间的通信可以通过固定的域名来实现,无需关心Pod的实际IP地址变化。 - **持久化存储**:StatefulSet支持挂载持久卷...

    Jboss集群配置

    8. **负载均衡**:为了实现更高效的负载分配,通常会结合反向代理服务器,如Apache HTTP Server或Nginx。Apache与Jboss的集成可以通过mod_jk模块,通过AJP协议转发请求。配置包括安装mod_jk,设置worker.properties...

    drip-minio:minio rest服务java8

    Nginx则是一个高性能的反向代理和负载均衡服务器,常用于处理静态内容和分发请求到不同的后端服务器,比如在这个场景中,Nginx可能被用来优化Minio REST服务的性能和可用性。 在"标签"中,"minio-server"再次确认了...

Global site tag (gtag.js) - Google Analytics