精华内容
下载资源
问答
  • nginx 轮询转发请求不均衡

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

           后端服务配置,一台116服务器用于nginx转发请求,使用轮询的负载均衡策略;两台后端API接口服务器57 和117,用于处理请求。

     

          现象背景:当对指定接口进行压力测试的时候,会出现绝大部分的请求都转发到57服务器,而117服务器上只有少量的请求。

     

         问题定位: 查看nginx的error日志发现,出现大量报错:2020/06/16 14:23:00 [error] 4950#4950: *4162133210 no live upstreams while connecting to upstream, client: xxx.xxx.xxx.xxx, server:

          出现no live upstreams while connecting to upstream表示nginx检测不到任何存活的后端服务。同时使用netstat命令查看117后端服务器,存在大量的TIME_WAIT连接

     

        .解决问题:在nginx.conf文件中增加了keep-Alive配置,如:

     

           upstream xxxxxxx {

                  server 172.17.192.57:8087 max_fails=3 fail_timeout=5s weight=1;

                  server 172.17.192.117:8087 max_fails=3 fail_timeout=5s weight=1;

                  keepalive 256;

           }

      参考:https://www.cnblogs.com/xiaoleiel/p/8308514.html

              https://xiezefan.me/2017/09/27/nginx-502-bug-trace/

    展开全文
  • nginx超时转发请求问题

    千次阅读 2015-09-05 17:28:37
    今天在做房产结构导入时,由于做了一个...发现是nginx会将超时的请求转发到另外一台服务器上,目前的处理办法是,针对该导入的url做全匹配,将该请求的时间设置更长 location = /psms/ps/cost_info!importInfo.a
    今天在做房产结构导入时,由于做了一个小区只能有一个导入,所以在前一个请求没响应前,再来一个请求就会提示“有正在处理的导入”,但是当数据量较大时,一个请求也会有该提示,经过万能的百度。发现是nginx会将超时的请求转发到另外一台服务器上,目前的处理办法是,针对该导入的url做全匹配,将该请求的时间设置更长

    location = /psms/ps/cost_info!importInfo.action {

                           #定义本虚拟主机的访问日志

                           #access_log /usr/local/nginx/logs/access.log main9;

                            proxy_pass         http://psms;

                            proxy_redirect     off;

                            proxy_set_header   Host             $host:8080;

                            proxy_set_header   X-Real-IP        $remote_addr;

                            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

                            proxy_read_timeout     7200;

                 }
    展开全文
  • nginx作代理,相同的配置可以将请求转发到weblogic的7001端口,但是转发至8080端口报400错误;下面是配置文件和日志文件;即http://188.185.1.191:7001/是可以正常访问,但是http://188.185.1.191:8080无法正常访问...
  • 经过nginx转发,错误日志里显示连接超时,tomcat上也没有日志,说明根本没连上。但是看了nginx的日志,转发的URL是对的。 还有一个很奇怪的点是,用springboot的IDE(STS3.9.6)使用内置的tomcat测试的时候,当时...
  • 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 利用代理转发请求实例

    千次阅读 2018-03-09 18:51:58
    Nginx 不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用 Nginx 利用代理转发请求实例。米扑博客原文:Nginx 利用代理转发请求实例 Nginx 利用...

    我们米扑科技的业务遍布全球,有时国外的客户无法访问我们搭建在国内的服务,这就要求我们在国外服务器上搭建一个代理转发服务,用户请求国外服务器的域名,然后代理转发到国内,处理请求后返回结果给国外的客户。Nginx 不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用 Nginx 利用代理转发请求实例。

    米扑博客原文:Nginx 利用代理转发请求实例

     

    Nginx 利用代理转发请求实例

    nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。

    nginx 反向代理官方文档: NGINX REVERSE PROXY

    当在一台主机上部署了多个不同的web服务器,并且需要能在80和443端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能,用 nginx 在80端口监听所有请求,并转发给443端口,再由443端口统一依据转发规则转发到对应的国内web服务器上。

     

    示例:

    proxy.mimvp.com  域名在阿里云备案,部署在国内的北京阿里云服务器

    proxy.mimgu.cn     域名在腾讯云备案,部署在国外的新加坡腾讯云服务器(国外域名可不备案)

     

    1. 国内北京阿里云服务器proxy.mimvp.com

    vim mimvp_proxy.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    server {
        listen       80 ;
      server_name   proxy.mimvp.com;       # 域名可以有多个,用空格隔开
      root      www / mimvp_proxy;
        rewrite ^(. * )$  https: / / $host$ 1 permanent;
     
      location / {
        root        www / mimvp_proxy;
        index       index.php index.html index.htm;
      }
     
      location ~ \.php$ {
        root                www / mimvp_proxy;
        fastcgi_pass        127.0 . 0.1 : 9000 ;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME / scripts$fastcgi_script_name;
        include         fastcgi.conf;
      }
     
         location ~ * ^ / (images|img|javascript|js|css|blog|flash|media|static) / {
             root        www / mimvp_proxy;
             expires     30d ;
         }
     
         location ~ * ^ / (robots\.txt) {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ * ^ / favicon\.ico {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ * ^ / img / logo\.png {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ / \.ht {
             deny  all ;
         }
    }
     
     
    server {
         listen          443 ssl http2;
         server_name     proxy.mimvp.com;       # 域名可以有多个,用空格隔开
         root            www / mimvp_proxy;
         ssl             on;
     
         ssl_certificate      proxy.mimvp.com.crt;
         ssl_certificate_key  proxy.mimvp.com.key;
     
         ssl_session_cache    shared:SSL: 1m ;
         ssl_session_timeout  10m ;
     
         ssl_protocols TLSv1 TLSv1. 1 TLSv1. 2 ;
     
         ssl_ciphers ECDHE - RSA - AES128 - GCM - SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
         ssl_prefer_server_ciphers on;
     
      location / {
        root        www / mimvp_proxy;
        index       index.php index.html index.htm;
      }
     
      location ~ \.php$ {
        root                www / mimvp_proxy;
        fastcgi_pass        127.0 . 0.1 : 9000 ;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME / scripts$fastcgi_script_name;
        include         fastcgi.conf;
      }
     
         location ~ * ^ / (images|img|javascript|js|css|blog|flash|media|static) / {
             root        www / mimvp_proxy;
             expires     30d ;
         }
     
         location ~ * ^ / (robots\.txt) {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ * ^ / favicon\.ico {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ * ^ / img / logo\.png {
             root        www / mimvp_proxy;
             expires     365d ;
         }
     
         location ~ / \.ht {
             deny  all ;
         }
    }

     

     

    2. 国外新加坡腾讯云服务器proxy.mimgu.cn

    vim mimvp_proxy2.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    server {
        listen       80 ;
      server_name   proxy.mimgu.cn;      
      root      www / mimvp_proxy;
        rewrite ^(. * )$  https: / / $host$ 1 permanent;   ## 全部请求强制跳转到 https
    }
     
     
    server {
         listen          443 ssl http2;
         server_name     proxy.mimgu.cn;      
         root            www / mimvp_proxy;
         ssl             on;
     
         ssl_certificate      proxy.mimgu.cn.crt;
         ssl_certificate_key  proxy.mimgu.cn.key;
     
         ssl_session_cache    shared:SSL: 1m ;
         ssl_session_timeout  10m ;
     
         ssl_protocols TLSv1 TLSv1. 1 TLSv1. 2 ;
     
         ssl_ciphers ECDHE - RSA - AES128 - GCM - SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
         ssl_prefer_server_ciphers on;
     
      location / {
        proxy_pass          https: / / proxy.mimvp.com;    ## 全部请求强制跳转到国内服务器 https://proxy.mimvp.com
      }
     
      location ~ \.php$ {
        proxy_pass          https: / / proxy.mimvp.com;
      }
     
         location ~ * ^ / (images|img|javascript|js|css|blog|flash|media|static) / {
             proxy_pass          https: / / proxy.mimvp.com;    ## css,js,img 等全部要强制转发,否则可能排版错乱
         }
     
         location ~ * ^ / (robots\.txt) {
             proxy_pass          https: / / proxy.mimvp.com;
         }
     
         location ~ * ^ / favicon\.ico {
             proxy_pass          https: / / proxy.mimvp.com;
         }
     
         location ~ * ^ / img / logo\.png {
             proxy_pass          https: / / proxy.mimvp.com;
         }
     
         location ~ / \.ht {
             deny  all ;
         }
    }

     

    3. 查看效果

    http://proxy.mimvp.com          // 强制跳转到  https://proxy.mimvp.com

    https://proxy.mimvp.com        // 对外显示的唯一域名网址

    http://proxy.mimgu.cn            // 强制跳转到  https://proxy.mimgu.cn,然后继续强制跳转到 https://proxy.mimvp.com

    https://proxy.mimgu.cn          // 强制跳转到  https://proxy.mimvp.com

     

    小结

    1. 四个域名,统一跳转指向唯一的服务 https://proxy.mimvp.com

    2. http 实现了强制跳转到 https ,整个网站使用ssl加密

    3. 国外的腾讯云域名(proxy.mimgu.cn),nginx代理转发到了国内阿里云域名(proxy.mimvp.com

    4. 上面nginx配置文件,是一个经典的配置,信息量大,值得认真学习米扑科技的匠心服务

     

     

    参考推荐:

    Nginx Redirect重定向所有子域名到www

    Nginx 配置文件禁止访问目录或文件

    Nginx屏蔽访问过于频繁的IP

    Mac OS X 安装 Nginx

     

    展开全文
  • nginx 转发域名请求本地图片

    千次阅读 2019-12-26 15:23:32
    nginx 转发域名请求本地图片nginx 配置本地文件位置hosts配置页面请求如下 nginx 配置 server { listen 80; server_name ei-d-files.phoenix.com; access_log logs/ei-d-files.phoenix.com_access.log; ...
  • Nginx 不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用 Nginx 利用代理转发请求实例。 Nginx 利用代理转发请求实例 nginx 作为目前最流行的web服务器之一,可以很...
  • nginx实现请求转发

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

    万次阅读 2019-09-20 12:59:50
    原路径: http://source.server.com/callback/test/test?username=xx 转发到:http://10.1.9.1:8088/callback/test/test?username=xx 配置如下: server { listen 80; server_name source.server.com; ...
  • nginx 转发ftp请求

    万次阅读 2018-04-11 15:25:49
    nginx1.9之后直接使用Stream配置就可以了,当然需要先安装stream模块1.nginx 增加tcp./configure --with-stream --with-pcre=../pcre-8.38 ./configure --with-stream --without-http_rewrite_module2.配置nginx....
  • nginx 转发webSocket连接请求

    千次阅读 2019-10-21 12:57:11
    nginx 是一个反向代理的轻量服务器,能对http请求进行转发,但是最新学习websocket发现,普通的nginx转发http请求时候无法转发websocket请求,今天就来介绍一下nginx如何转发websocket请求;与普通的端口转发差不多...
  • nginx转发请求导致参数丢失

    万次阅读 2019-05-14 14:00:13
    在使用nginx转发请求时,发现get请求获取不到请求的参数 原来的配置为: location / { proxy_pass http://localhost:8080; } 配置这样且每次请求的主机域名和ip都为127.0.0.1,无法获取到实际请求的数据,nginx在...
  • nginx实现tcp请求转发

    2020-06-05 16:52:59
    nginx实现tcp请求转发
  • nginx转发post请求

    千次阅读 2019-08-09 10:39:14
    应用场景: 由于项目迁移,旧接口的代码重新部署在了另外一个域名下的项目,比如: 旧接口地址:... ... https://cecshop.com/api/recommend/add 转发到 https://capis.com/rec/recom...
  • 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请求转发内容丢失 现象;昨天测试环境下通过了,切到线上环境测试,http请求的heade内容丢失,线上用到了nginx代理,nginx对下划线的头信息做了限制 解决方案一 既然nginx对下划线不支持,那没关系,不用下划线就是...
  • nginx转发get请求丢失参数

    千次阅读 2020-01-17 17:17:21
    nginx转发请求时,需要剥离某些字段。 如: http://127.0.0.1/myname/api/baseinfo/getlist?class=1 需要将请求设置为: http://127.0.0.1:8080/api/baseinfo/getlist?class=1 一开始的location配置为: ...
  • # nginx转发 nginx 怎么可以实现,相同的一次请求,分发给两台不同的服务器,比如请求A,同时将这个请求转发给服务器B,和服务器C。 一个相同的请求想同时转发到: http://a:api/; http://b:api/;
  • 我的请求头设置account_token,nginx默认情况下不识别 "_" 导致token没有发送到后台 1.修改配置 2.把account_toke 下划线去掉
  • nginx 转发请求超时

    千次阅读 2017-11-28 18:55:10
    修改nginx 配置文件/etc/nginx/nginx.conf 添加: proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; keepalive_timeout 300; fastcgi_connect_time
  • nginx 请求转发webSocket连接

    千次阅读 2019-04-30 10:22:39
    nginx 是一个反向代理的轻量服务器,能对http请求进行转发,同样,对于webSocket ws/wss协议的请求能否进行一个转发 以下为nginx的配置文件,与普通的端口转发差不多,只需要修改或加多一两个配置信息 location /...
  • nginx转发请求的实现 nginx(反向代理服务器)常见的功能有 1、转发请求 2、负载均衡 3、动静分离 本文针对转发请求做一丢丢理解 转发请求指的是把我们对其他端口页面进行访问时,都会先经过nginx服务器,然后nginx...
  • Nginx 请求转发配置-工作记录

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

    2019-05-08 14:23:00
    以下为无ssl证书配置的请求转发 server { listen 80; server_name api.****.com; #以下为指定请求域名匹配到某一个端口 #location ~* /union { #以下为全部转发到某一个端口 location / { client_...
  • Nginx转发添加请求头信息

    万次阅读 2019-02-23 10:15:48
     proxy_set_header X-Nginx-Proxy true;  proxy_pass http://10.10.10.25:443;  }  } 使用这种方法添加头部信息,并转发下一阶段的传递者 proxy_set_header userid '123456789';  
  • Nginx实现请求转发

    千次阅读 2020-06-28 23:34:15
    什么是请求转发? 环境配置 到官网下载nginx,这里使用的windows版本,最好使用Linux版本(性能好) ...(2)配置Nginx转发规则,在http{}加入下面配置: server { listen 9001; server_name localhost;

空空如也

空空如也

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

nginx无法转发请求