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

简介: #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;
}

}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
327 4
|
10月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
324 21
|
11月前
|
缓存 负载均衡 应用服务中间件
Nginx缓存的相关知识
总的来说,Nginx的缓存机制是其高性能的重要保证之一,通过合理的配置和管理,可以使网站的访问速度得到大幅提升。
253 28
|
10月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
311 14
|
10月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
405 11
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
696 5
|
12月前
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
939 9
|
10月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
5月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。