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:UserslidedongDesktopdist; 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;