精华内容
下载资源
问答
  • Nginx请求转发内容丢失 现象;昨天测试环境下通过了,切到线上环境测试,http请求的heade内容丢失,线上用到了nginx代理,nginx对下划线的头信息做了限制 解决方案一 既然nginx对下划线不支持,那没关系,不用下划线就是...

    Nginx请求转发内容丢失

    现象;昨天测试环境下通过了,切到线上环境测试,http请求的heade内容丢失,线上用到了nginx代理,nginx对下划线的头信息做了限制

    解决方案一

    既然nginx对下划线不支持,那没关系,不用下划线就是了。比如原来”app_version”改成”app-version”就可以了。

    解决方案二

    nginx默认request的header的那么中包含’_’时,会自动忽略掉。
    解决方法是:在nginx里的nginx.conf配置文件中的http部分中添加如下配置
    underscores_in_headers on; (默认 underscores_in_headers 为off)

    展开全文
  • Nginx 请求转发配置-工作记录

    千次阅读 2019-07-19 17:43:53
    Nginx 请求转发配置-工作记录前言当前Nginx 工作情况和新需求当前Nginx配置满足新需求的配置关键配置内容解析注意事项 前言 记录工作中的一次 Nginx 配置 当前Nginx 工作情况和新需求 当前 Nginx 工作情况: ...

    前言

    • 记录工作中的一次 Nginx 配置

    当前Nginx 工作情况和新需求

    • 当前 Nginx 工作情况:
      • 所有的请求都按照一定规则进行重写然后转发服务器A。
    • 新需求:
      • 对请求进行过滤,符合某些格式的请求直接转发到服务器B
      • 其他请求仍按原来的规则进行重写然后转发到服务器A。

    当前Nginx配置

    server {
        listen       80;
        server_name  *.test.com;
        
        set $city "";
        if ( $host ~* "^(\w+)\.test\.com$") {
            set $city $1;
        }
    
        rewrite ^/web/ $uri last;
        rewrite ^/www/ $uri last;
        rewrite ^/css/ $uri last;
        rewrite ^/images/ $uri last;
        rewrite ^/js/ $uri last;
        
        rewrite ~*\.(css)$ www.test.com/$1 last;
        rewrite ^/ajax/(\w+)/(\w+)$  /$1/$2 last;
        rewrite ^/ctrl(\w+)/(\w+)\.html$ /$1/$2 last;
        rewrite ^/ctrl(\w+)/(\w+)$  /$1/$2?city=$city last;
        
        rewrite ^/ctrl(\w+)/(\w+)/(\w+)$  /$1/$2 last;
        rewrite ^/(\w+)/(\w+)$  /$1/$2?city=$city last;
    	rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/index(\w+)\.html$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=$5? last;
        rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=1? last;
        rewrite ^/(\w+)_(\w+)_(\w+)/index(\w+)\.html$ /city/index?city=$city&area=$1&type=$2&tab=$3&p=$4? last;
        rewrite ^/(\w+)_(\w+)_(\w+)/$ /city/index?city=$city&area=$1&type=$2&tab=$3&p=1? last;
        rewrite ^/* /city/index?city=$city&request_uri=$request_uri last;
    		
    	if ($city = ""){
                rewrite ^/* /;
        }
        
        error_page   404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        
    	
        location / {  
            proxy_set_header        Host $host; 
            proxy_set_header        Remote_Addr $remote_addr; 
            proxy_set_header        X-REAL-IP  $remote_addr;
            proxy_connect_timeout   3;  
            proxy_send_timeout      30;  
            proxy_read_timeout      30;  
            proxy_pass http://area_jjzm_com;
        }  
    }
    

    满足新需求的配置

    server {
        listen       80;
        server_name  *.jjzm.com;
    	
    	set $city "";
        if ( $host ~* "^(\w+)\.jjzm\.com$") {
            set $city $1;
        }
    	
        #使用 $uri_type 标记请求的类型,判断是否是需要过滤的请求请求
    	set $uri_type  "www_uri";
    	if ($request_uri ~* "^/seositemap/(.*)/(\w+).xml$"){
                set $uri_type  "seo_uri";
        }
    	
    	if ($request_uri ~* "^/(\w+)/seositemap/(.*)/(\w+).xml$"){
                set $uri_type  "seo_uri";
        }
           
    	#如果不是需要特别过滤的请求则执行原有的 rewrite 逻辑
    	if ($uri_type ~ "www_uri"){
    		rewrite ^/web/ $uri last;
            rewrite ^/www/ $uri last;
            rewrite ^/css/ $uri last;
            rewrite ^/images/ $uri last;
            rewrite ^/js/ $uri last;
            
            rewrite ~*\.(css)$ www.jzmmaoyan.com/$1 last;
            rewrite ^/ajax/(\w+)/(\w+)$  /$1/$2 last;
            rewrite ^/ctrl(\w+)/(\w+)\.html$ /$1/$2 last;
            rewrite ^/ctrl(\w+)/(\w+)$  /$1/$2?city=$city last;
         
            rewrite ^/ctrl(\w+)/(\w+)/(\w+)$  /$1/$2 last;
            rewrite ^/(\w+)/(\w+)$  /$1/$2?city=$city last;
    		rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/index(\w+)\.html$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=$5? last;
            rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=1? last;
            rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=1? last;
            rewrite ^/(\w+)_(\w+)_(\w+)/index(\w+)\.html$ /city/index?city=$city&area=$1&type=$2&tab=$3&p=$4? last;
            rewrite ^/job/(\w+)\.html$ /common/jobdetail?city=$city&id=$1? last;
            rewrite ^/(\w+)_(\w+)_(\w+)/$ /city/index?city=$city&area=$1&type=$2&tab=$3&p=1? last;
            rewrite ^/(\w+)_(\w+)_(\w+)$ /city/index?city=$city&area=$1&type=$2&tab=$3&p=1? last;
            rewrite ^/* /city/index?city=$city&request_uri=$request_uri last;
    	}
    	
    	if ($city = ""){
                rewrite ^/* /;
        }
        
        error_page   404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        
    	#匹配符合格式1的请求并进行转发
    	location  ~*  ^/seositemap/(.*)/(\w+).xml$  {  
            proxy_set_header        Host $host; 
            proxy_connect_timeout   3;  
            proxy_send_timeout      30;  
            proxy_read_timeout      30;
            proxy_pass http://jzmao_timer;
        }
    	#匹配符合格式2的请求并进行转发
    	location  ~*  ^/(\w+)/seositemap/(.*)/(\w+).xml$  {  
    		rewrite ^/(\w+)/seositemap/(.*)/(\w+).xml$  /seositemap/$2/$3.xml break;
            proxy_set_header        Host $host; 
            proxy_connect_timeout   3;  
            proxy_send_timeout      30;  
            proxy_read_timeout      30;
            proxy_pass http://jzmao_timer;
        }
           
        location / {  
            proxy_set_header        Host $host; 
            proxy_set_header        Remote_Addr $remote_addr; 
            proxy_set_header        X-REAL-IP  $remote_addr;
            proxy_connect_timeout   3;  
            proxy_send_timeout      30;  
            proxy_read_timeout      30;  
            proxy_pass http://area_jjzm_com;
        }  
    }
    

    关键配置内容解析

    • 通过 一个变量 $uri_type 来标记当前请求是否需要过滤
    • 由于 Nginx 不支持嵌套的 if,也不支持 if 中使用逻辑运算符 ( &&),所以需要写多个 if。而不能简单写成:
      • if (条件1 || 条件2 ){
            xxx
        }if (条件1 && 条件2 ){
            xxx
        }if (条件1){
            if(条件2){
            }
        }
        
    • 正则表达式:^/seositemap/(.*)/(\w+).xml$
      • ^/seositemap/:以 /seositemap/开头
      • (.*):中间有 n 层路径
      • (\w+).xml:以字符串.xml 结尾
      • 可匹配:
        • /seositemap/sss/xxx/xxxx1.xml
        • /seositemap/sss/xxx/xx/3333/xx1.xml

    注意事项

    • if(之间应该有空格,否则 Nginx 会把它们当成一个命令而导致报错
    展开全文
  • Nginx请求转发&端口转发

    千次阅读 2020-06-28 19:30:32
    负载均衡,nginx转发一般都属于反向代理。 nginx反向代理 官网介绍:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ https://ptsv2.com/s/whatisthis.html https://pt

    代理类型

    正向/反向代理区别

    • 正向代理:简单理解,服务端不知道客户端是谁,客户端全部请求都是通过代理发送给服务端。
    • 反向代理:客户端不知道服务端是谁,代理充当中转中心的角色,一般用户负载均衡。负载均衡,nginx做转发一般都属于反向代理。

    nginx反向代理
    官网介绍:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

    HTTP请求转发

    • 访问http://8.210.146.22:8765/实际指向https://www.google.com.hk
    • 访问http://8.210.146.22:8764/实际指向https://www.instagram.com
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        server {
            listen       8765;
            server_name  localhost;
            location / {
                    proxy_pass https://www.baidu.com;
            }
        }
        server {
            listen       8764;
            server_name  localhost;
            location / {
                    proxy_pass https://www.sina.com;
            }
        }
    }
    

    端口转发

    本机监听1521端口,转发到10.0.1.123:1521

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    # include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    stream{
        server{
            listen 1521;
            proxy_pass backend;
        }
        upstream backend{
            hash $remote_addr consistent;
            server  10.0.1.123:1521 max_fails=3 fail_timeout=10s;
        }
    }
    
    展开全文
  • nginx 请求转发webSocket连接

    千次阅读 2019-04-30 10:22:39
    nginx 是一个反向代理的轻量服务器,能对http请求进行转发,同样,对于webSocket ws/wss协议的请求能否进行一个转发 以下为nginx的配置文件,与普通的端口转发差不多,只需要修改或加多一两个配置信息 location /...

    nginx 是一个反向代理的轻量服务器,能对http请求进行转发,同样,对于webSocket  ws/wss协议的请求也能进行一个转发

    以下为nginx的配置文件,与普通的端口转发差不多,只需要修改或加多一两个配置信息

    location /cultureMusicWebSocket/ {
            proxy_pass http://localhost:8082;
    
            proxy_http_version 1.1;
            proxy_read_timeout 360s;   
            proxy_redirect off;   
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            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;
    }

     

    推荐一个java的学习网站:https://how2j.cn?p=17361

    展开全文
  • nginx 请求转发规则

    2019-09-20 16:10:23
    反向代理适用于很多场合,...当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的...
  • nginx请求转发配置

    2019-05-08 14:23:00
    以下为无ssl证书配置的请求转发 server { listen 80; server_name api.****.com; #以下为指定请求域名匹配到某一个端口 #location ~* /union { #以下为全部转发到某一个端口 location / { client_...
  • tomcat跑的项目,nginx配置的请求转发。项目在本地的可以跑的起来。可是放在服务器就没办法了。nginx请求发的出去。可是tomcat接受不到。是不是有地方配置出问题了?附2张图片,一张是nginx日记的,一张是tomcat的...
  • nginx请求转发demo

    千次阅读 2018-04-04 07:43:41
    简介nginx是一款轻量级的web服务器,也是一款反向代理服务器(域名转发就是反向代理的功能)1.nginx可以直接支持rails和php的程序2.可以作为HTTP的反向代理服务器3.作为负载均衡服务器4.作为邮件代理服务器5.帮助...
  • nginx请求转发至tomcat(端口转发)

    千次阅读 2018-05-06 19:42:59
    假设安装好jdk/nginx/tomcat环境   4、端口转发 需要把80端口转发到服务器中运行的tomcat首页,其端口为8080。 tomcat首页: 配置nginxnginx.conf文件,如下: server { listen 80; server_name ...
  • nginx请求转发和重写

    千次阅读 2017-08-31 00:14:10
    upstream abc { server 112.162.15.234:8080; } server { listen 80; server_name localhost; location / { root html;
  • Nginx请求转发,静态文件处理

    千次阅读 2016-05-11 16:06:00
    vi /usr/local/nginx/conf/nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/...
  • nginx实现请求转发

    2020-09-30 07:19:13
    本文给大家分享的是使用nginx实现代理(请求转发)的教程及简单示例,非常实用,有需要的小伙伴可以参考下
  • nginx 请求转发

    千次阅读 2019-09-16 16:09:46
    前言 建国日来了,网站安全 开始审查了。之前我们的项目 是通过 ip + port 直接访问tomcat的,内部使用嘛。... 现在访问模式 是 客户端 -->...设置 nginx 请求转发 server { # listen 80 ; ...
  • Nginx实现请求转发

    千次阅读 2020-06-28 23:34:15
    什么是请求转发? 环境配置 到官网下载nginx,这里使用的windows版本,最好使用Linux版本(性能好) 把下载好的文件解压,在Nginx.conf进行配置 (1)修改Nginx默认端口,把80修改为81 listen 81; server_name ...
  • nginx-请求转发

    2020-11-01 00:35:13
    一:反向代理服务器 1、请求转发 2、负载均衡 3、动静分离 ...三:配置nginx实现请求转发的功能 修改nginx.conf配置文件: 1、修改nginx默认窗口,把80修改81; 2、配置nginx转发规则: 3、总体配置
  • nginx 轮询转发请求不均衡

    千次阅读 2020-06-16 11:05:50
    后端服务配置,一台116服务器用于nginx转发请求,使用轮询的负载均衡策略;两台后端API接口服务器57和117,用于处理请求。 现象背景:当对指定接口进行压力测试的时候,会出现绝大部分的请求转发到57服务器,...
  • nginx 配置请求转发 和 负载均衡

    万次阅读 2017-11-08 17:31:27
    这里没有安装Nginx的朋友请移步:http://blog.csdn.net/qq_27292113/article/details/78189500 1、nginx 配置请求转发 找到自己安装目录下的 nginx.conf 文件 找到 server { listen 80; server_name localhost;
  • nginx实现tcp请求转发

    2020-06-05 16:52:59
    nginx实现tcp请求转发
  • nginx 怎么可以实现,相同的一次请求,分发给两台不同的服务器,比如请求A,同时将这个请求转发给服务器B,和服务器C。 一个相同的请求想同时转发到: http://a:api/; http://b:api/;
  • nginx超时转发请求问题

    千次阅读 2015-09-05 17:28:37
    今天在做房产结构导入时,由于做了一个...发现是nginx会将超时的请求转发到另外一台服务器上,目前的处理办法是,针对该导入的url做全匹配,将该请求的时间设置更长 location = /psms/ps/cost_info!importInfo.a
  • nginx stream转发sftp请求

    千次阅读 2020-01-17 10:33:57
    nginx 版本在1.9只上的可以通过stream来转发sftp 安装ftp模块,下载地址 ftp://ftp.pcre.org/pub/pcre/ 我下载的是8.43版本 (pcre-8.43.tar.gz) 启ftp模块和stream ./configure \ --with-pcre=/opt/pcre-...
  • nginx实现请求转发例子

    千次阅读 2019-09-14 08:40:41
    反向代理适用于很多场合,负载均衡是最普遍的用法。 ...nginx反向代理官方文档:NGINX REVERSE PROXY 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,264
精华内容 30,105
关键字:

nginx请求转发