博客
关于我
Nginx+ tomcat环境搭建
阅读量:612 次
发布时间:2019-03-12

本文共 3376 字,大约阅读时间需要 11 分钟。

动静分离实践指南

动静分离是什么?

动静分离是一种通过Nginx反向代理技术,将传入的请求根据文件类型分类处理的方法。Nginx会根据请求地址和文件扩展名,自动判断是静态资源还是动态资源。如果是静态资源(如图片、HTML、JavaScript、CSS等),Nginx会直接将文件响应;如果是动态资源(如JSP、Servlet等),则转发给后端Tomcat服务器处理。这种方式能够有效降低后端服务器的负载压力,提升网站访问速度。

为什么进行动静分离?

传统的应用服务器(如Tomcat)需要处理所有的请求,包括静态资源和动态资源,这会导致服务器负载过大。通过Nginx进行动静分离,可以将静态资源的处理转移到前端服务器,由Nginx缓存或直接响应,从而减轻后端服务器的压力。这种配置方式尤其适用于需要高并发访问的场景。

动静分离的核心实现方式

动静分离的实现通过以下几个关键环节:

  • Nginx安装与配置

    • Nginx作为反向代理服务器,负责识别请求类型并分发处理。
    • 配置<Location />{...}</Location>块,指定所有请求默认转发至后端服务器。
    • 修改<Location ~ .*.(htm|html|gif|jpg|jpeg|...)>,指定Nginx处理特定类型的静态资源文件。
  • 静态资源处理配置

    • 为不同类型文件设置不同缓存策略。
    • 申明Nginx获取静态资源的根目录。
    • 配置缓存规则,设置文件的最大缓存时间。
  • 动态资源转发

    • 配置<Location ~ .*\.jsp>及其他动态资源类型,自动转发至Tomcat服务器。
    • 配置ProxyPass指令,指定后端服务器地址和端口。
  • Nginx+Tomcat的实际应用

    为了实现动静分离,我按照以下步骤操作。

    服务器环境配置

    • Nginx服务器IP:192.168.2.20
    • 后端Tomcat服务器IP:192.168.2.21、192.168.2.22
    • 服务器操作系统:CentOS 7

    Nginx安装步骤

  • 添加 CentOS 7 的Nginx YUM仓库并安装软件包:

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum -y install nginx
  • 启动Nginx并关闭防火墙:

    systemctl start nginxsystemctl stop firewalld.servicesystemctl disable firewalld.service
  • curlyfoundation 搭建Nginx配置文件:

    events {    worker_connections 1024;}http {    include /etc/nginx/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 /var/log/nginx/access.log main;    sendfile on;    tcp_nopush on;    keepalive_timeout 65;    include /etc/nginx/conf.d/*.conf;}
  • 配置/etc/nginx/conf.d/www.conf文件:

    server {    listen 80;    server_name hs.com;    location / {        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_pass http://myhsh;        proxy_redirect off;        client_max_body_size 10m;        client_body_buffer_size 128k;        proxy_connect_timeout 300;        proxy_send_timeout 300;        proxy_read_timeout 300;        proxy_buffer_size 4k;        proxy_buffers 4 32k;        proxy_busy_buffers_size 64k;        proxy_temp_file_write_size 64k;        proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;    }}
  • 配置Nginx动静分离:

  • 完整的Nginx配置文件可按以下方式填写:

    /* 配置总体服务器设置 */user nobody;worker_processes 2;events {    worker_connections 1024;}/* 网站访问设置 */server {    listen 80;    server_name hs.com;    charset utf-8;    # 静态资源处理    location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma) {        root /usr/local/webapps;        expires 30d;    }    # JavaScript和CSS处理    location ~ .*\.(js|css) {        root /usr/local/webapps;        expires 1h;    }    # 动态资源转发至Tomcat    location / {        proxy_pass http://myhsh;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header Host $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        proxy_next_upstream http_502 http_504 error timeout invalid_header;    }    error_page 500 502 503 504 /50x.html;    location /50x.html {        root html;    }}/*Tomcat后端配置 */upstream myhsh {    server 192.168.2.20:8080 weight=1;    server 192.168.2.21:8080 weight=1;    server 192.168.2.22:8080 weight=1;}

    kernel版本与用户权限设置

    安装完成后,请确保Nginx工作进程用户权限合理,并根据实际需求调整缓存时间限。建议在开发成功后,部署至生产环境中进行后续优化和性能评估。

    转载地址:http://kfhxz.baihongyu.com/

    你可能感兴趣的文章
    mysql 里对root及普通用户赋权及更改密码的一些命令
    查看>>
    Mysql 重置自增列的开始序号
    查看>>
    mysql 锁机制 mvcc_Mysql性能优化-事务、锁和MVCC
    查看>>
    MySQL 错误
    查看>>
    mysql 随机数 rand使用
    查看>>
    MySQL 面试题汇总
    查看>>
    MySQL 面试,必须掌握的 8 大核心点
    查看>>
    MySQL 高可用性之keepalived+mysql双主
    查看>>
    MySQL 高性能优化规范建议
    查看>>
    mysql 默认事务隔离级别下锁分析
    查看>>
    Mysql--逻辑架构
    查看>>
    MySql-2019-4-21-复习
    查看>>
    mysql-5.6.17-win32免安装版配置
    查看>>
    mysql-5.7.18安装
    查看>>
    MySQL-Buffer的应用
    查看>>
    mysql-cluster 安装篇(1)---简介
    查看>>
    mysql-connector-java.jar乱码,最新版mysql-connector-java-8.0.15.jar,如何愉快的进行JDBC操作...
    查看>>
    mysql-connector-java各种版本下载地址
    查看>>
    mysql-EXPLAIN
    查看>>
    MySQL-Explain的详解
    查看>>