nginx的一个配置,nginx gzip压缩,nginx静态缓存,nginx负载均衡

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: #user  nobody;worker_processes  8;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 { 


#user  nobody;
worker_processes  8;


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;


    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  /usr/local/nginx/logs/access.log   main;
    
    charset utf-8;


    server_names_hash_bucket_size 128;
    client_header_buffer_size 64k;
    large_client_header_buffers 4 64k;
    client_max_body_size 200m;


    ##cache######
    proxy_connect_timeout 5;
    proxy_read_timeout 60;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    ##设置临时目录
    proxy_temp_path /data/tpl_nginx_cache_dir/temp;
    ##设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区
    proxy_cache_path /data/tpl_nginx_cache_dir/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
    ##cache######


    sendfile        on;
    #tcp_nopush     on;


    #keepalive_timeout  0;
    keepalive_timeout  65;


    #开启Gzip压缩
    gzip  on;
    #不压缩临界值,大于1k的才压缩,一般不用改
    gzip_min_length 1k;
    #buffer相关设置
    gzip_buffers 4 16;
    #用了反向代理的话,末端通信是HTTP/1.0,默认是Http/1.1
    #gzip_http_version 1.0;
    #压缩级别,1~10,数字越大压缩的越好,时间也越长
    gzip_comp_level 3;
    #进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    #跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding",我不需要这玩意,自己对照情况看着办吧
    gzip_vary off;
    #IE6对Gzip不怎么友好,不给它Gzip了
    gzip_disable "MSIE [1-6]\.";

upstream fuzaianli {
   server 127.0.0.1:8080 weight=1;
   server 127.0.0.1:9002 weight=1;
}

server {
   listen 80;
server_name 127.0.0.1;
charset utf-8;

location / {
   #root html;
#index index.html index.htm;
proxy_pass http://fuzaianli;
client_max_body_size  200m;
#下面的例子表示的是要跳转的真实的ip地址上
proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ^~ /project2{
            proxy_pass http://fuzaianli;
#下面的例子表示的是要跳转的真实的ip地址上
proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

location ~ .*/project2/ {
            rewrite ^/(.*)/project2/(.*)$ http://fuzaianli/project2/$2;
    }

location ^~ /project1 {
            proxy_pass http://fuzaianli;
#下面的例子表示的是要跳转的真实的ip地址上
proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}


location ~ .*/project1/ {
rewrite ^/(.*)/project1/(.*)$ http://fuzaianli/project1/$2;
}


location ^~ /tpl/ {
proxy_pass http://fuzaianli;
#下面的例子表示的是要跳转的真实的ip地址上
proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}


location ^~ /project3/ {
rewrite ^/project3/(.*)$ http://127.0.0.1:8888/project3/$1;
}


location ^~ /project4 {
proxy_pass http://fuzaianli;
#下面的例子表示的是要跳转的真实的ip地址上
proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}


location ~ .*/project4/ {
rewrite ^/(.*)/project4/(.*)$ http://fuzaianli/project4/$2;
}

location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
   proxy_pass http://fuzaianli;
   proxy_redirect off;
            proxy_set_header Host $host;
   ##设置缓存共享区块,也就是keys_zone名称。
            proxy_cache cache_one;
   ##设置http状态码为200,302缓存时间为1小时。
            proxy_cache_valid 200 302 1h;
            proxy_cache_valid 301 1d;
            proxy_cache_valid any 1m;
   ##设置过期时间,为30天
            expires 30d;
}

location ~ .*\.(action)(.*) {
   proxy_pass http://fuzaianli;
   proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~ .*\.(jsp)(.*) {
   proxy_pass http://fuzaianli;
   proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

}


====================================================================

一个域名配置相关的:

server {
listen       80;
#server_name  120.55.185.149;

server_name  project.ceshi.cn;

        #正常情况下访问下面的就可以了。

#if ( $host = 'project.ceshi.cn' ) {
#    rewrite ^/(.*)$ http://project.ceshi.cn/project1/common/toIndexPage.action permanent;
        #
#}


##通过下面的方式实现访问:http://project.ceshi.cn
location / { 
proxy_pass http://10.117.21.159:7002/project1/common/toIndexPage.action;  
}


#if ( $host = 'project.ceshi.cn' ) {
#    rewrite ^/(.*)$ http://project.ceshi.cn/project1/common/toIndexPage.action permanent;
#}

location ^~ /project1/ {
proxy_pass http://10.117.21.159:7002;
}

}
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
缓存 应用服务中间件 nginx
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
这篇文章讨论了在使用Nginx进行动静分离时遇到的静态资源更新不及时的问题。问题描述了在服务器上更新静态资源后,访问页面时页面没有显示更新的情况。文章提供了解决这个问题的方法,即清除浏览器缓存,并提供了相关参考文章链接。此外,还展示了问题复现的步骤和正常情况的预期结果。
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
|
4月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
100 2
|
26天前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
74 8
|
2月前
|
缓存 应用服务中间件 nginx
[nginx]proxy_cache缓存系统
[nginx]proxy_cache缓存系统
|
2月前
|
缓存 NoSQL 算法
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
|
3月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
|
3月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
39 1
|
3月前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
181 2
|
3月前
|
监控 应用服务中间件 nginx
高并发架构设计三大利器:缓存、限流和降级问题之Nginx的并发连接数计数的问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Nginx的并发连接数计数的问题如何解决
|
3月前
|
应用服务中间件 nginx 缓存
高并发架构设计三大利器:缓存、限流和降级问题之Nginx作为前置网关进行限流问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Nginx作为前置网关进行限流问题如何解决