前后端微服務聯調


前端轉發

       通過瀏覽器訪問后端服務的時候返回404,有兩種情況下會出現

       第一種: nginx.conf的配置沒有添加 導致出現訪問出現404.這種情況的404可以通過nginx的error日志來查看

       tail -f /var/log/nginx/error.log

        

      修改nginx.conf

               

       第二種:  后端微服務網關項目的配置沒有正確的路由到具體的微服務應用導致后端服務返回404

         1.在nginx的err.log看不到404輸出 但是在nginx的access.log中出現了404

          tail -f /var/log/nginx/access.log

             

        后端gateway的路由配置沒有添加

             

       加上網關配置后 發起訪問后返回正常

             

     總結:

         任何一個請求走的都是兩級反向代理

         第一級最前端有nginx負責路由轉發,第二級由后端網關項目進行路由轉發。這兩個地方的路由配置都需要同步更新。

 網絡協議監聽  

          禁用ipv6
          sysctl net.ipv6.conf.all.disable_ipv6=1

          

 微服務調用超時

        微服務之間通過feign互相調用,跨服務器調用時拋出異常:No route to host

        feign調用其他服務也是通過獲取eureka注冊中心服務,猜測是否服務注冊的IP存在問題,查詢指定appId的實例

        這是由於網絡問題 1.有的微服務容器使用了主機網絡  2.有的微服務容器使用的不是主機網絡  

        導致微服務之間網絡不通造成調用超時 

        統一所有的微服務網絡即可

          

 后端數據庫調試

           ./mysql -S /app/data01/mysql/db/mysql.sock -u root -p

          

          

          

容器環境前后端聯調

        

       

nginx監聽端口但是無法返回html頁面

       1.查看nginx的error日志 發現是一個權限問題

           

      2.修改文件權限

          

      3.重新啟動nginx

        瀏覽器正常打開web服務器上的index.html

nginx返回日志404

       后端服務是正常的 但是nginx代理請求后端接口的時候會經常返回404。修改nginx的配置文件

      

       

user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
   #                   '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    #client_body_timeout 10;
    #
    #client_header_timeout 10;
    send_timeout 100;
    server_tokens off;

    client_max_body_size 50m;
   

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    upstream gatewayserver {
        server 192.168.30.123:8008;
    }    

    upstream websockserver {
        server 192.168.30.123:8770;
    }

     upstream prometheus_servers_http {
        server 192.168.30.135:3000 max_fails=3 fail_timeout=5s;
    }
    

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  65;

    #gzip  on;


    # another virtual host using mix of IP-, name-, and port-based configuration
    #



    # HTTPS server
    #

    
    limit_conn_zone $binary_remote_addr zone=one:10m;
        
    server {
        listen       1688;
        server_name  sab;
        send_timeout 100;
        client_header_timeout 60000;
        client_body_timeout 60000;
        #charset koi8-r;
        keepalive_timeout  650;

        #access_log  logs/host.access.log  main;

    location / {
            root   /usr/share/nginx/html/;
            index  index.html index.htm;
            client_max_body_size 100m;
            #limit_conn one 10;
            limit_rate 10240k;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100; //對單個IP的連接數進行了限制 如果前端連接過多超過這個數值的話nginx會直接返回超時
        }
        
    
        location /prod-api/ {
            rewrite ^/prod-api/(.*) /$1  break;
            root   /app/taishi/nginx/html/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
    }    
        
        location /admin-console {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }
        
        location /schedule {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        location /es-service {
             proxy_pass http://gatewayserver;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection $connection_upgrade;
             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_read_timeout 600s;
             limit_conn one 100;
        }

        location /rule {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        location /collect {
            proxy_pass http://gatewayserver;
            #proxy_read_timeout  300s;
            #proxy_connect_timeout 300s;
            #proxy_send_timeout 300s;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }
        location /sdc-web {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        
         location /soar-service {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   
            limit_conn one 100;
        }
        

         location /prod-api/soar-service/ {
            proxy_pass http://gatewayserver/soar-service/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

         location /stage-api/soar-service/ {
            proxy_pass http://gatewayserver/soar-service/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;            
        }

        location /prod-api/schedule/ {
            proxy_pass http://gatewayserver/schedule/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }
        
        location /prod-api/admin-console/ {
            proxy_pass http://gatewayserver/admin-console/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }    
        
    location /prod-api/es-service/ {
            proxy_pass http://gatewayserver/es-service/;
            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_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_read_timeout 1000s;
            limit_conn one 100;
        }
        
    location /prod-api/rule/ {
            proxy_pass http://gatewayserver/rule/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }
        
    location /prod-api/collect/ {
            proxy_pass http://gatewayserver/collect/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }            
        
        location /grafana/ {
            proxy_pass http://prometheus_servers_http;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }
        
        location /prod-api/sdc-web/ {
            proxy_pass http://gatewayserver/sdc-web/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        location /sdc-api-webcenter {
            proxy_pass http://gatewayserver;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        location /prod-api/sdc-api-webcenter/ {
            proxy_pass http://gatewayserver/sdc-api-webcenter/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }

        location /stage-api/sdc-api-webcenter/ {
            proxy_pass http://gatewayserver/sdc-api-webcenter/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            limit_conn one 100;
        }


        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
           
        }
    }
    # 開啟gzip
    gzip on;

    # 啟用gzip壓縮的最小文件,小於設置值的文件將不會壓縮
    gzip_min_length 1k;

    # gzip 壓縮級別,1-9,數字越大壓縮的越好,也越占用CPU時間,后面會有詳細說明
    gzip_comp_level 2;

    # 進行壓縮的文件類型。javascript有多種形式,后面的圖片壓縮不需要的可以自行刪除
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

    # 是否在http header中添加Vary: Accept-Encoding,建議開啟
    gzip_vary on;

    # 設置壓縮所需要的緩沖區大小     
    gzip_buffers 4 16k;

    proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g;
}
nginx.conf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM