rockXiaofeng edited a comment on issue #3725:
URL: https://github.com/apache/apisix/issues/3725#issuecomment-788800005


   > I can't reproduce it with your configuration. Have you enabled the 
dubbo-proxy plugin? What is your generated nginx.conf?
   
   nginx.conf:
   ```
   # Configuration File - Nginx Server Configs
   # This is a read-only file, do not try to modify it.
   
   master_process on;
   
   worker_processes auto;
   
   # main configuration snippet starts
   
   
   # main configuration snippet ends
   
   error_log logs/error.log warn;
   pid logs/nginx.pid;
   
   worker_rlimit_nofile 20480;
   
   events {
       accept_mutex off;
       worker_connections 10620;
   }
   
   worker_rlimit_core  16G;
   
   worker_shutdown_timeout 240s;
   
   env APISIX_PROFILE;
   
   
   
   http {
       # put extra_lua_path in front of the builtin path
       # so user can override the source code
       lua_package_path  
"$prefix/deps/share/lua/5.1/?.lua;$prefix/deps/share/lua/5.1/?/init.lua;/Users/wangxiaofeng/myCode/apisix7/apisix/?.lua;/Users/wangxiaofeng/myCode/apisix7/apisix/?/init.lua;;./?.lua;/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/openresty/luajit/share/lua/5.1/?.lua;/usr/local/openresty/luajit/share/lua/5.1/?/init.lua;";
       lua_package_cpath 
"$prefix/deps/lib64/lua/5.1/?.so;$prefix/deps/lib/lua/5.1/?.so;;./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/openresty/luajit/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so;";
   
       lua_shared_dict internal_status      10m;
       lua_shared_dict plugin-limit-req     10m;
       lua_shared_dict plugin-limit-count   10m;
       lua_shared_dict prometheus-metrics   10m;
       lua_shared_dict plugin-limit-conn    10m;
       lua_shared_dict upstream-healthcheck 10m;
       lua_shared_dict worker-events        10m;
       lua_shared_dict lrucache-lock        10m;
       lua_shared_dict skywalking-tracing-buffer    100m;
       lua_shared_dict balancer_ewma        10m;
       lua_shared_dict balancer_ewma_locks  10m;
       lua_shared_dict balancer_ewma_last_touched_at 10m;
       lua_shared_dict plugin-limit-count-redis-cluster-slot-lock 1m;
       lua_shared_dict tracing_buffer       10m; # plugin: skywalking
       lua_shared_dict plugin-api-breaker   10m;
   
       # for openid-connect and authz-keycloak plugin
       lua_shared_dict discovery             1m; # cache for discovery metadata 
documents
   
       # for openid-connect plugin
       lua_shared_dict jwks                  1m; # cache for JWKs
       lua_shared_dict introspection        10m; # cache for JWT verification 
results
   
       # for authz-keycloak
       lua_shared_dict access_tokens         1m; # cache for service account 
access tokens
   
       # for custom shared dict
   
       # for proxy cache
       proxy_cache_path /tmp/disk_cache_one levels=1:2 
keys_zone=disk_cache_one:50m inactive=1d max_size=1G use_temp_path=off;
   
       # for proxy cache
       map $upstream_cache_zone $upstream_cache_zone_info {
           disk_cache_one /tmp/disk_cache_one,1:2;
       }
   
   
       lua_ssl_verify_depth 5;
       ssl_session_timeout 86400;
   
       underscores_in_headers on;
   
       lua_socket_log_errors off;
   
       resolver 172.20.183.13 172.20.183.14 192.168.1.13 192.168.1.14;
       resolver_timeout 5;
   
       lua_http10_buffering off;
   
       lua_regex_match_limit 100000;
       lua_regex_cache_max_entries 8192;
   
       log_format main escape=default '$remote_addr - $remote_user 
[$time_local] $http_host "$request" $status $body_bytes_sent $request_time 
"$http_referer" "$http_user_agent" $upstream_addr $upstream_status 
$upstream_response_time "$upstream_scheme://$upstream_host$upstream_uri"';
       uninitialized_variable_warn off;
   
       access_log logs/access.log main buffer=16384 flush=3;
       open_file_cache  max=1000 inactive=60;
       client_max_body_size 0;
       keepalive_timeout 60s;
       client_header_timeout 60s;
       client_body_timeout 60s;
       send_timeout 10s;
   
       server_tokens off;
   
       include mime.types;
       charset utf-8;
   
       real_ip_header X-Real-IP;
   
       set_real_ip_from 127.0.0.1;
       set_real_ip_from unix:;
   
       # http configuration snippet starts
   
   
       # http configuration snippet ends
   
       upstream apisix_backend {
           server 0.0.0.1;
           balancer_by_lua_block {
               apisix.http_balancer_phase()
           }
   
           keepalive 320;
       }
   
       upstream apisix_dubbo_backend {
           server 0.0.0.1;
           balancer_by_lua_block {
               apisix.http_balancer_phase()
           }
   
           multi 32;
           keepalive 320;
       }
   
       init_by_lua_block {
           require "resty.core"
           apisix = require("apisix")
   
           local dns_resolver = { "172.20.183.13", "172.20.183.14", 
"192.168.1.13", "192.168.1.14", }
           local args = {
               dns_resolver = dns_resolver,
           }
           apisix.http_init(args)
       }
   
       init_worker_by_lua_block {
           apisix.http_init_worker()
       }
   
       server {
           listen 127.0.0.1:9090;
   
           access_log off;
   
           location / {
               content_by_lua_block {
                   apisix.http_control()
               }
           }
       }
   
   
       server {
           listen 9080 reuseport;
           listen 9443 ssl http2 reuseport;
   
           listen [::]:9080 reuseport;
           listen [::]:9443 ssl http2 reuseport;
   
   
           ssl_certificate      cert/ssl_PLACE_HOLDER.crt;
           ssl_certificate_key  cert/ssl_PLACE_HOLDER.key;
           ssl_session_cache    shared:SSL:20m;
           ssl_session_timeout 10m;
   
           ssl_protocols TLSv1.2 TLSv1.3;
           ssl_ciphers 
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
           ssl_prefer_server_ciphers on;
           ssl_session_tickets off;
   
           # http server configuration snippet starts
   
   
           # http server configuration snippet ends
   
           set $upstream_scheme             'http';
           set $upstream_host               $http_host;
           set $upstream_uri                '';
           set $ctx_ref                     '';
   
           set $dubbo_service_name          '';
           set $dubbo_service_version       '';
           set $dubbo_method                '';
   
           location = /apisix/nginx_status {
               allow 127.0.0.0/24;
               deny all;
               access_log off;
               stub_status;
           }
   
           location /apisix/admin {
                   allow 127.0.0.0/24;
                   deny all;
   
               content_by_lua_block {
                   apisix.http_admin()
               }
           }
   
           ssl_certificate_by_lua_block {
               apisix.http_ssl_phase()
           }
   
           location / {
               set $upstream_mirror_host        '';
               set $upstream_upgrade            '';
               set $upstream_connection         '';
   
               access_by_lua_block {
                   apisix.http_access_phase()
               }
   
               proxy_http_version 1.1;
               proxy_set_header   Host              $upstream_host;
               proxy_set_header   Upgrade           $upstream_upgrade;
               proxy_set_header   Connection        $upstream_connection;
               proxy_set_header   X-Real-IP         $remote_addr;
               proxy_pass_header  Date;
   
               proxy_ssl_name $host;
               proxy_ssl_server_name on;
   
               ### the following x-forwarded-* headers is to send to upstream 
server
   
               set $var_x_forwarded_for        $remote_addr;
               set $var_x_forwarded_proto      $scheme;
               set $var_x_forwarded_host       $host;
               set $var_x_forwarded_port       $server_port;
   
               if ($http_x_forwarded_for != "") {
                   set $var_x_forwarded_for "${http_x_forwarded_for}, 
${realip_remote_addr}";
               }
               if ($http_x_forwarded_proto != "") {
                   set $var_x_forwarded_proto $http_x_forwarded_proto;
               }
               if ($http_x_forwarded_host != "") {
                   set $var_x_forwarded_host $http_x_forwarded_host;
               }
               if ($http_x_forwarded_port != "") {
                   set $var_x_forwarded_port $http_x_forwarded_port;
               }
   
               proxy_set_header   X-Forwarded-For      $var_x_forwarded_for;
               proxy_set_header   X-Forwarded-Proto    $var_x_forwarded_proto;
               proxy_set_header   X-Forwarded-Host     $var_x_forwarded_host;
               proxy_set_header   X-Forwarded-Port     $var_x_forwarded_port;
   
               ###  the following configuration is to cache response content 
from upstream server
   
               set $upstream_cache_zone            off;
               set $upstream_cache_key             '';
               set $upstream_cache_bypass          '';
               set $upstream_no_cache              '';
               set $upstream_hdr_expires           '';
               set $upstream_hdr_cache_control     '';
   
               proxy_cache                         $upstream_cache_zone;
               proxy_cache_valid                   any 10s;
               proxy_cache_min_uses                1;
               proxy_cache_methods                 GET HEAD;
               proxy_cache_lock_timeout            5s;
               proxy_cache_use_stale               off;
               proxy_cache_key                     $upstream_cache_key;
               proxy_no_cache                      $upstream_no_cache;
               proxy_cache_bypass                  $upstream_cache_bypass;
   
               proxy_hide_header                   Cache-Control;
               proxy_hide_header                   Expires;
               add_header      Cache-Control       $upstream_hdr_cache_control;
               add_header      Expires             $upstream_hdr_expires;
               add_header      Apisix-Cache-Status $upstream_cache_status 
always;
   
               proxy_pass      $upstream_scheme://apisix_backend$upstream_uri;
   
               mirror          /proxy_mirror;
   
               header_filter_by_lua_block {
                   apisix.http_header_filter_phase()
               }
   
               body_filter_by_lua_block {
                   apisix.http_body_filter_phase()
               }
   
               log_by_lua_block {
                   apisix.http_log_phase()
               }
           }
   
           location @grpc_pass {
   
               access_by_lua_block {
                   apisix.grpc_access_phase()
               }
   
               grpc_set_header   Content-Type application/grpc;
               grpc_socket_keepalive on;
               grpc_pass         $upstream_scheme://apisix_backend;
   
               header_filter_by_lua_block {
                   apisix.http_header_filter_phase()
               }
   
               body_filter_by_lua_block {
                   apisix.http_body_filter_phase()
               }
   
               log_by_lua_block {
                   apisix.http_log_phase()
               }
           }
   
           location @dubbo_pass {
               access_by_lua_block {
                   apisix.dubbo_access_phase()
               }
   
               dubbo_pass_all_headers on;
               dubbo_pass_body on;
               dubbo_pass $dubbo_service_name $dubbo_service_version 
$dubbo_method apisix_dubbo_backend;
   
               header_filter_by_lua_block {
                   apisix.http_header_filter_phase()
               }
   
               body_filter_by_lua_block {
                   apisix.http_body_filter_phase()
               }
   
               log_by_lua_block {
                   apisix.http_log_phase()
               }
           }
   
           location = /proxy_mirror {
               internal;
   
               if ($upstream_mirror_host = "") {
                   return 200;
               }
   
               proxy_http_version 1.1;
               proxy_set_header Host $upstream_host;
               proxy_pass $upstream_mirror_host$request_uri;
           }
       }
       # http end configuration snippet starts
   
   
       # http end configuration snippet ends
   }
   ```
   config-default.yaml:
   
   ```
   plugins:                          # plugin list (sorted in alphabetical 
order)
     - api-breaker
     - authz-keycloak
     - basic-auth
     - batch-requests
     - consumer-restriction
     - cors
     - dubbo-proxy
     - echo
     # - error-log-logger
     # - example-plugin
     - fault-injection
     - grpc-transcode
     - hmac-auth
     - http-logger
     - ip-restriction
     - jwt-auth
     - kafka-logger
     - key-auth
     - limit-conn
     - limit-count
     - limit-req
     # - log-rotate
     # - node-status
     - openid-connect
     - prometheus
     - proxy-cache
     - proxy-mirror
     - proxy-rewrite
     - redirect
     - referer-restriction
     - request-id
     - request-validation
     - response-rewrite
     - serverless-post-function
     - serverless-pre-function
     # - skywalking
     - sls-logger
     - syslog
     - tcp-logger
     - udp-logger
     - uri-blocker
     - wolf-rbac
     - zipkin
     - server-info
     - traffic-split
   
   stream_plugins:
     - mqtt-proxy
   
   plugin_attr:
     log-rotate:
       interval: 3600    # rotate interval (unit: second)
       max_kept: 168     # max number of log files will be kept
     skywalking:
       service_name: APISIX
       service_instance_name: "APISIX Instance Name"
       endpoint_addr: http://127.0.0.1:12800
     prometheus:
       export_uri: /apisix/prometheus/metrics
     server-info:
       report_interval: 60  # server info report interval (unit: second)
       report_ttl: 3600     # live time for server info in etcd (unit: second)
     dubbo-proxy:
       upstream_multiplex_count: 32
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to