nginx 配置示例
静态 web 资源服务器
location ~ .*\.(jpg|png|gif)$ { gzip off;#关闭压缩 root /data/www/images; } location ~ .*\.(html|js|css)$ { gzip on; #启用压缩 gzip_min_length 1k; #只压缩超过1K的文件 gzip_http_version 1.1; #启用gzip压缩所需的HTTP最低版本 gzip_comp_level 9; #压缩级别,压缩比率越高,文件被压缩的体积越小 gzip_types text/css application/javascript;#进行压缩的文件类型 root /data/www/html; } location ~ ^/download { gzip_static on; #启用压缩 tcp_nopush on; # 不要着急发,攒一波再发 root /data/www; # 注意此处目录是`/data/www`而不是`/data/www/download` }
浏览器缓存
location ~ .*\.(jpg|png|gif)$ { expires 24h; }
跨域
location ~ .*\.json$ { add_header Access-Control-Allow-Origin http://localhost:3000; add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS; root /data/json; }
防盗链
location ~ .*\.(jpg|png|gif)$ { expires 1h; gzip off; gzip_http_version 1.1; gzip_comp_level 3; gzip_types image/jpeg image/png image/gif; # none没有refer blocked非正式HTTP请求 特定IP valid_referers none blocked 47.104.184.134; if ($invalid_referer) { # 验证通过为0,不通过为1 return 403; } root /data/images; }
代理服务器
location ~ ^/api { proxy_pass http://localhost:3000; proxy_redirect default; #重定向 proxy_set_header Host $http_host; #向后传递头信息 proxy_set_header X-Real-IP $remote_addr; #把真实IP传给应用服务器 proxy_connect_timeout 30; #默认超时时间 proxy_send_timeout 60; # 发送超时 proxy_read_timeout 60; # 读取超时 proxy_buffering on; # 在proxy_buffering 开启的情况下,Nginx将会尽可能的读取所有的upstream端传输的数据到buffer,直到proxy_buffers设置的所有buffer们 被写满或者数据被读取完(EOF) proxy_buffers 4 128k; # proxy_buffers 由缓冲区数量和缓冲区大小组成的。总的大小为number*size proxy_busy_buffers_size 256k; # proxy_busy_buffers_size 不是独立的空间,他是proxy_buffers和proxy_buffer_size的一部分。nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。 proxy_buffer_size 32k; # 用来存储upstream端response的header proxy_max_temp_file_size 256k; # response的内容很大的 话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size控制。如果busy的buffer 传输完了会从temp_file里面接着读数据,直到传输完毕。 }
负载均衡
upstream zhufeng { server 127.0.0.1:3000 weight=10; server 127.0.0.1:4000; server 127.0.0.1:5000; } server { location / { proxy_pass http://zhufeng; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论