nginx三 之动静分离

友情提示: 动静分离需要在负载均衡的环境基础上搭建,负载均衡可以参考http://www.cnblogs.com/dahuandan/p/6753646.html

介绍

就是将网站静态资源(HTML,,CSS,img等文件)与后台应用分开部署,提高网站响应速度,降低对后台应用服务器的请求。

配置

添加、代理静态资源集群


#进入nginx安装的conf目录
cd /usr/local/nginx/conf/
#打开nginx.conf文件添加以下内容:
upstream dynamic_server {
    server 10.93.143.130:8080 weight=1 max_fails=2 fail_timeout=30s;
    server 10.93.138.207:8080 weight=1 max_fails=2 fail_timeout=30s;
} 

upstream static_server {
    server 127.0.0.1:808 weight=1;
}

location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
    proxy_pass http://static_server;
    expires 30d;
} 

location ~ .*$ {

    proxy_pass http://dynamic_server;
}

server{
    listen 808;
    server_name static;
        location /
        {
            expires 30d;
        }
    }

完整的配置文件


#工作进程个数:多开几个可以减少io带来的影响,
#根据 lscpu查出来的cpus设置(一般为当前机器核心数的1-2倍,最大不超过8),
worker_processes 2; 

#worker_cpu_affinity需要结合worker_processes使用,一个worker_processes绑定一个CPU,
#比如两核是01,四核是0001,下面是8核绑定8个worker_processes的示例
worker_cpu_affinity 01 10;

#error_log logs/error.log info;

events {
    #使用epoll模型提高性能
    use epoll;

    #单个进程连接数(最大连接数=连接数*进程数)
    worker_connections 65535;
}

http {

    #文件扩展名与文件类型映射表
    include mime.types;

    #默认文件类型
    default_type application/octet-stream;

    #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。
    #注意:如果图片显示不正常把这个改成off
    sendfile on;

    #长连接超时时间,单位是秒
    keepalive_timeout 65;

    #gzip 是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。
    gzip on;
    gzip_min_length 1k; #最小1K
    gzip_buffers 16 64K;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x- text/css application/xml application/;
    gzip_vary on;

    #header设置:用户真实的ip地址转发给后端服务器
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;

    #缓冲
    client_body_buffer_size 512k;
    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;


    ################################################集群 ###################################################    

    #动态资源集群
    upstream dynamic_server { 

        #服务器配置 weight是权重的意思,权重越大,分配的概率越大。
        server 192.168.1.111:8080 weight=1 max_fails=2 fail_timeout=30s;
        server 192.168.1.111:8081 weight=1 max_fails=2 fail_timeout=30s;
    } 

    #静态资源集群(一般由nginx管理,因为nginx处理静态资源性能好,如果服
    #务器有限,也可以部署在代理服务器本地)
    upstream static_server {
        server 127.0.0.1:808 weight=1;
    }

    ################################################Nginx代理###################################################
    server {

        #监听80端口,可以改成其他端口
        listen 80;

        #nginx服务的域名,通过域名就可以访问应用
        server_name localhost;

        ##静态资源存放在nginx服务器的地址
        #root /opt/static/transfer;

        #反向代理:网页、视频、图片文件从nginx服务器读取
        location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
        { 

            #反向代理,静态的由nginx来处理(不配置默认nginx的html目录,静态资源的目录结构必须和tomcat的web工程一致)
            proxy_pass http://static_server; 

            #浏览器中缓存30天
            expires 30d;
        } 

        #反向代理: 其他动态文件转发到后端的tomcat集群
        location ~ .*$
        {
            proxy_pass http://dynamic_server;
        }

        #错误提示页面
        error_page 500 502 503 504 /50x.html;
        location = /50x.html
        {
            root html;
        }

    }

    #静态资源服务器,这里监听本地808端口,因为静态资源服务器和代理服务器是同一台机器,所以有如下配置
    #如果是独立的服务器,直接在集群upstram配置即可。
    server{

        listen 808;

        server_name static;

        #反向代理:网页、视频、图片文件从nginx服务器读取
        location /
        {
            #浏览器中缓存30天
            expires 30d;
        }
    }
}

重新加载配置文件


/usr/local/nginx/sbin/nginx -s reload

测试

添加测试页面



1、复制tomcat中的demo项目到/usr/local/nginx/html目录下

2、创建index.html测试页面,分别放在tomcat1、tomcat2的demo项目,内容如下:

<!DOCTYPE HTML><html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcom Tomcat</title>
</head>
<body>
<h3>Welcom Tomcat</H3>
</body></html>

3、修改index.html中的title和h3标签为Nginx,以便测试区分。

测试结果



访问测试页面, 我们可以看到html静态资源的请求被分发在配置的nginx服务器,而不是tomcat

时间: 2024-11-08 01:56:06

nginx三 之动静分离的相关文章

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk

Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明. (二)环境简介 服务器名称 IP 备注 Nginx服务器 192.168.180.4 Tomcat服务器 192.168.180.23 client 192.168.181.231 客户端访问 (三)具体步骤:

Nginx系列-8.配置Nginx+Apache实现动静分离

Nginx系列-8.配置Nginx+Apache实现动静分离 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置

Nginx和Tomcat动静分离

. Nginx和Tomcat动静分离,布布扣,bubuko.com

Nginx与Apache动静分离

. Nginx与Apache动静分离,布布扣,bubuko.com

nginx+Apache实现动静分离

Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Apache为例说明. ·     原理 ·     实现 ·     验证 一.原理 原理: 说明: 1.代理服务器和静态服务器即为一台服务器上,这里只是为了明显区分动静分离所处服务器的不同: 2.静态服务器中,存放的

HTTP/NGINX+TOMCAT实现动静分离

什么是TOMCAT? Tomcat和其他web服务器一样,可以响应HTML的请求,实际上Tomcat是Apache的服务器的扩展,但是运行时他是独立运行的.另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,但是它的静态页面处理能力比较差.可以使用动静分离来提高站点性能. JAVA Java的技术体系有三个分类:java2SE,java2EE,jave2ME(移动开发).jdk其实相当于java2SE.java2EE相当于是在jdk中添加了一些企业级类库,

Nginx(七层)动静分离的负载均衡群集

环境:(全部为公网IP,可以直接和客户端通信) 分发器:192.168.200.101 静态文件服务器:192.168.200.102 192.168.200.103 动态文件服务器:192.168.200.104 192.168.200.105 图片服务器:       192.168.200.106 192.168.200.107 nginx常用的三种模式: 轮询   默认模式,后端服务器挂了自动踢出 weight   指定权重 ip_hash   每个请求按访问IP的hash结果分配,每个

Nginx+lamp构建动静分离项目

一.nginx代理的概述 概述:nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个内部网络代理上网的代理服务器,另外nginx可以作为反向代理进行负载均衡的实现. 二.nginx之正向代理 解析:在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代