nginx反向代理有关端口的问题

今天在做nginx反向代理的时候,出现了一个问题:我们外网访问端口设置的是8088,但是因为外网访问默认端口是80,所以当页面发生重定向的时候,会出现页面访问不到的问题,、

尝试很多办法之后,终于得到了解决,特意分享出来,希望可以帮到有需要的朋友。

server {
        listen       内网端口;
        server_name  域名a;  

        if ( $content_type ~ xwork2 ){
                return 403;
        }

        if ( $content_type ~ struts2 ){
                return 403;
        }

    client_header_buffer_size    100m;
    client_max_body_size        500m;
    client_body_buffer_size        100m;

        location / {
        index index.jsp index.do index.html index.htm;
                proxy_pass              访问的内网地址;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $host;
                #set_real_ip_from       0.0.0.0/24;
                #real_ip_header         X-Real-IP;
                proxy_headers_hash_max_size 51200;
                proxy_headers_hash_bucket_size 6400;
                proxy_redirect     a
                                   a:8088;
        }

    location /web-console/ {}
    location /jmx-console/ {}
    location /invoker/ {}
}

这里需要配置一下proxy_redirect,当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段

更多资料可以参考:http://blog.51cto.com/blief/1739178

原文地址:https://www.cnblogs.com/xiaoQ0725/p/8548475.html

时间: 2024-11-05 13:48:07

nginx反向代理有关端口的问题的相关文章

Nginx反向代理关于端口的问题

Nginx反向代理关于端口的问题 http://www.cnblogs.com/likehua/p/4056625.html Nginx默认反向后的端口为80,因此存在被代理后的端口为80的问题,这就导致访问出错.主要原因在Nginx的配置文件的host配置时没有设置响应的端口. 相关配置文件如下: 1 2 3 4 proxy_pass http://ime-server/ime-server; proxy_set_header Host $host; proxy_set_header X-Re

nginx反向代理隐藏端口号和项目名

可利用nginx反向代理隐藏端口号和项目名,直接输入ip即可访问对应的tomcat项目,配置nginx安装目录的nginx/conf/nginx.conf文件,修改如下:(只开了一个项目名为film5的web项目) server { listen 80; server_name 127.0.0.1; server_name_in_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $

nginx 反向代理时丢失端口的解决方案

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了. 这里给出一个简短的解决方案,修改nginx的配置文件. 一.配置文件 # the 90 port server { listen 90; server_name zxy1994.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_

相同Ip 不同端口配置Nginx反向代理Apache

相同Ip  不同端口 配置Nginx反向代理Apache(就是Nginx跳转到Apache) 在linux 一经搭建好环境  先后安装了Nginx  和Apache 由于 默认端口都是:80 一般客户请求的服务器端口默认为80  所以Nginx作为静态页端口设置:80 Apache设置端口为:8080(在httpd.conf  文件中修改Listen:8080) 如何跳转: 在nginx.conf中 添加 location / { proxy_pass http://202.85.224.166

nginx 反向代理时丢失端口的解决方案(转)

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了. 这里给出一个简短的解决方案,修改nginx的配置文件. 一.配置文件 # the 90 port server { listen 90; server_name zxy1994.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_

Nginx反向代理的配置

Chapter: Nginx基本操作释疑 1. Nginx的端口修改问题 2. Nginx 301重定向的配置 3. Windows下配置Nginx使之支持PHP 4. Linux下配置Nginx使之支持PHP 5. 以源码编译的方式安装PHP与php-fpm 6. Nginx多站点配置的一次实践 7. Nginx反向代理的配置 Nginx 作为 web 服务器一个重要的功能就是反向代理.其实我们在前面的一篇文章<Nginx多站点配置的一次实践>里,用的就是 Nginx 的反向代理,这里简单再

nginx反向代理

1. 操作系统 CentOS 6.4 x86_64 2.软件版本 Nginx 1.4.2 3.实验拓扑 注,实验拓扑见下文. 4.安装yum源 1 2 3 [root @nginx ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [[email protected] ~]# rpm -ivh http://download.fedoraproject.org/

nginx 反向代理

关于什么是nginx以及为什么使用的理论网上还是有很多资料的,这里就不在赘述了.下面简单的说一下nginx的反向代理及实现 一.反向代理: 反向代理(Reverse Proxy)方式是指它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端. 与正向代理不同,正向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端(如Web服务器)作为代理使用, 而不是客户端. 客户端通过正向代理可以访问很多不同的资源,而反向代理是很多客户端都通

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服