nginx做为web容器部署静态资源以及做负载均衡反向代理实现

需求:

此时前台开发完成打包生成静态资源文件,要做到以下方面:

  使用nginx部署静态资源,同时nginx要实现端口转发,隐藏真实后台地址,同时后台需要做一个负载均衡。

  localhost:7001是前台地址,访问后台localhost:7001/backend 转发到 192.168.249.144:7001/backend

nginx.conf配置如下

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    charset utf-8;
    #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  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    client_max_body_size  64m;
    client_header_buffer_size  16k;    
    client_header_timeout       10;
    client_body_timeout         10;
    open_file_cache max=102400 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 1;
    underscores_in_headers  on;
    #gzip  on;
       gzip  on;
    
    gzip_min_length             1k;
    gzip_buffers        4      16k;
    gzip_http_version   1.0;
    gzip_comp_level             3;
    gzip_proxied        any;
    gzip_types          text/plain application/x-javascript application/javascript text/css application/json  text/javascript image/jpeg image/jpg image/gif image/png  application/x-bmp application/x-shockwave-flash  application/xml+rss;
    gzip_vary           on;
    gzip_disable        "MSIE [1-6]\.";
    
    fastcgi_connect_timeout 300;  
    fastcgi_send_timeout 300;    
    fastcgi_read_timeout 300;    
    fastcgi_buffer_size 64k;    
    fastcgi_buffers 4 64k;    
    fastcgi_busy_buffers_size 128k;    
    fastcgi_temp_file_write_size 128k; 
    upstream cfsCluster{
       ip_hash;
        server 192.168.249.144:7001;
    }
    server {
        listen       7001;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            add_header backendIp $upstream_addr;
            root C:\Users\lidedong\Desktop\dist;
            index index.html;
        }
        location /backend {
            proxy_pass http://cfsCluster;
            add_header backendIp $upstream_addr;
            add_header backendCode $upstream_status;
            proxy_set_header X-Real_Ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
        }

        #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;
        }
    }
    
    
}

常用的代理配置粘上:

# proxy.conf  
# proxy_redirect          off;  
proxy_set_header        Host            $http_host;  
proxy_set_header                Remote_Addr     $remote_addr;
proxy_set_header        X-Real-IP       $remote_addr;  
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header                Connection "";
proxy_set_header   Cookie $http_cookie;  
#proxy_set_header   x_enb_token $x_enb_token;  
#proxy_set_header   x_enb_userid $x_enb_userid;  
#proxy_set_header   x_enb_ctime $x_enb_ctime;  
#proxy_set_header   x_enb_clientid $x_enb_clientid;  
client_max_body_size    64m;  
client_body_buffer_size 128k;  
proxy_connect_timeout   300s;
proxy_send_timeout      300s;  
proxy_read_timeout      300s;  
proxy_buffers           128  8k;
proxy_buffer_size 16k; 
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_headers_hash_max_size             1024;
proxy_ignore_client_abort       on;