一、nginx的安装
本地环境:centos-x86 6.5 nginx-1.10.2
1.安装pcre库 yum install –y make zlib-devel openssl-devel pcre-devel ubuntu系统: apt-get update apt-get install libpcre3 libpcre3-dev apt-get install zlib1g-dev apt-get install openssl 2.安装GCC 和GCC-C++ yum install gcc yum install -y gcc gcc-c++ ubuntu系统: apt-get install build-essential apt-get install libtool 3.安装ngx_cache_purge-2.3 官网:http://labs.frickle.com/nginx_ngx_cache_purge/ 文件名:ngx_cache_purge-2.3.tar.gz tar zxvf ngx_cache_purge-2.3.tar.gz 将解压文件夹放到nginx解压文件的同级目录 3.安装nginx(prefix指定nginx文件安装路径,with指定安装的插件 ngx_cache_purge模块的作用:用于清除指定url的缓存) tar zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=../ngx_cache_purge-2.3 make && make install 4.编写启动脚本 [root@localhost ~]# vi /etc/init.d/nginx #!/bin/bash # chkconfig: 345 99 20 # description: Nginx servicecontrol script PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) $PROG echo "Nginx servicestart success." ;; stop) kill -s QUIT $(cat $PIDF) echo "Nginx service stopsuccess." ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) echo"reload Nginx configsuccess." ;; *) echo "Usage: $0{start|stop|restart|reload}" exit 1 esac 5.启动 [root@localhost ~]# chmod +x /etc/init.d/nginx [root@localhost ~]# service nginx restart [root@localhost ~]# chkconfig --add nginx [root@localhost ~]# chkconfig nginx on
二、修改配置文件
worker_processes 4; #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; ##########################缓存##################### #设置缓存临时目录,要配合linux的内存目录/dev/shm使用的话,必须给赋予目录权限,因为默认root权限 proxy_temp_path /mydata/proxy_temp_path; #设置缓存目录,并设置Web缓存区名称为cache_one,内存缓存空间大小为256m,7天没有被访问的内容自动清除,硬盘缓存空间大小为40GB。 proxy_cache_path /mydata/proxy_cache_path levels=1:2 keys_zone=cache_one:256m inactive=7d max_size=80g; #启用html、jsp...<meta>标签不缓存的设置 proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; ################################################集群 ################################################### #动态资源集群 upstream dynamic { ip_hash;#解决跨域问题 server 127.0.0.1:8080 weight=1; } #静态资源集群(一般由nginx管理,因为nginx处理静态资源性能好,如果服 #务器有限,也可以部署在代理服务器本地) upstream static { ip_hash;#解决跨域问题 server 127.0.0.1:8081 weight=1; } #后台资源集群 upstream admin { ip_hash;#解决跨域问题 server 127.0.0.1:9070 weight=1; } ################################################Nginx web代理################################################### server { listen 80; proxy_intercept_errors on; server_name web; location / { proxy_pass http://dynamic; } #用于清除缓存的url设置 #假设一个URL为demo/test.gif,那么就可以通过访问/purge/demo/test.gif清除该URL的缓存。 location ~ /purge(/.*) { #设置只允许指定的IP或IP段才可以清除URL缓存 allow 127.0.0.1; allow 183.233.212.166; deny all; proxy_cache_purge cache_one $host$1$is_args$args; } location ~ .*\.(js|css|ico|jpg|jpeg|png|JPG|JPEG|PNG|eot|svg|ttf|woff) { proxy_pass http://static; } location ~ .*$ { proxy_pass http://dynamic; } location = /error.html { # 放错误页面的目录路径。 root /mydata/program/tomcat-7.0/webapps/ROOT/error; } } ################################################Nginx admin代理(获取后台房源图片)################################################### server { listen 9080; server_name admin; #用于清除缓存的url设置 #假设一个URL为demo/test.gif,那么就可以通过访问/purge/demo/test.gif清除该URL的缓存。 location ~ /purge(/.*) { #设置只允许指定的IP或IP段才可以清除URL缓存 allow 127.0.0.1; allow 183.233.212.166; deny all; proxy_cache_purge cache_one $host$1$is_args$args; } location ~ /upload(/.*)\.(ico|jpg|jpeg|png|JPG|JPEG|PNG) { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' '*'; proxy_cache cache_one; #设置资源缓存的zone proxy_cache_key $host$uri$is_args$args; #设置缓存的key,以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内 proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间 proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_hide_header Cache-Control; proxy_hide_header Set-Cookie; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; #增加一个header字段方便在浏览器查看是否击中缓存(生产中可注释) add_header X-Cache '$upstream_cache_status from $host'; root /mydata/mz_images/; expires 15d; #缓存15天 } location ~ /ueditor(/.*)\.(ico|jpg|jpeg|png|JPG|JPEG|PNG) { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' '*'; proxy_cache cache_one; #设置资源缓存的zone proxy_cache_key $host$uri$is_args$args; #设置缓存的key,以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内 proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间 proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_hide_header Cache-Control; proxy_hide_header Set-Cookie; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; #增加一个header字段方便在浏览器查看是否击中缓存(生产中可注释) add_header X-Cache '$upstream_cache_status from $host'; root /mydata/mz_images/; expires 15d; #缓存15天 } location ~ .*$ { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' '*'; proxy_pass http://admin; client_max_body_size 10m; } } #静态资源服务器,这里监听本地8081端口,因为静态资源服务器和代理服务器是同一台机器,所以有如下配置 #如果是独立的服务器,直接在集群upstram配置即可。 server{ listen 8081; server_name static; location ~ .*\.(js|css|ico|jpg|jpeg|png|JPG|JPEG|PNG|eot|svg|ttf|woff) { proxy_cache cache_one; #设置资源缓存的zone proxy_cache_key $host$uri$is_args$args; #设置缓存的key,以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内 proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间 proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_hide_header Cache-Control; proxy_hide_header Set-Cookie; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; #增加一个header字段方便在浏览器查看是否击中缓存(生产中可注释) add_header X-Cache '$upstream_cache_status from $host'; #所有静态文件直接读取硬盘 #root /app/tomcat7/webapps/ROOT; proxy_pass http://dynamic; expires 15d; #缓存15天 } } }
相关推荐
【Nginx 介绍】 Nginx 是一款高性能的 HTTP 和...总结起来,利用 Nginx 实现动静分离和负载均衡,可以有效地优化网站性能,提高服务的可用性和可靠性。Nginx 的高性能和易用性使其成为现代 Web 架构中的重要组成部分。
通过以上配置,我们可以看到Nginx不仅提供了丰富的配置选项来优化其自身性能,还能够有效地实现负载均衡和动静分离等功能,从而显著提升整个系统的性能和稳定性。这对于构建高性能Web应用来说至关重要。
这个“Nginx+Tomcat 动静分离实现负载均衡.rar”压缩包文件很可能是关于如何利用Nginx作为反向代理和负载均衡器,以及Tomcat作为Java应用服务器,来实现这两种技术的详细教程或指南。 首先,我们来理解一下“动静...
本文详细介绍了如何使用 Nginx 和 Tomcat 实现动静分离负载均衡,包括 Nginx 配置文件、HTTP 配置、负载均衡组、代理参数和缓存配置等。通过合理配置 Nginx,可以提高系统的整体性能和可扩展性。
总结来说,"nginx+tomcat 负载均衡简易配置与动静分离"是通过Nginx作为反向代理,结合Tomcat应用服务器,实现静态内容和动态请求的分离处理,以及请求的负载均衡,从而达到高可用、高性能的Web服务架构。
通过深入理解和实践这些Nginx的配置优化、负载均衡和动静分离技术,你可以构建一个高效、稳定且可扩展的Web服务环境,有效应对高并发访问,提升用户体验。"nginx配置优化+负载均衡+动静分离详解.txt"这个文件应该...
本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,需要准备好服务器、软件包和网络环境。服务器方面,...
Nginx+Tomcat 动静分离实现负载均衡 本文档将详细介绍如何使用 Nginx 和 Tomcat 实现动静分离,提高中间件运行性能和服务质量。 动静分离的重要性 在 web 项目中,Tomcat 是一个功能强大且全面的 web 容器,对...
本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器,以其高性能、稳定性以及低内存占用著称。它能处理静态文件请求,...
以上就是关于Nginx配置负载均衡、静态代理和动静分离的基本介绍。实际应用中,Nginx的配置会根据业务需求和服务器环境进行更复杂的调整,以达到最佳性能和稳定性。通过灵活配置Nginx,可以构建出高效、可靠的Web服务...
本篇文章将探讨如何利用Nginx实现动静分离、缓存功能,并进行基础的负载均衡配置。 一、动静分离 动静分离是一种优化网站性能的技术,它将动态内容(如PHP、Java等后端处理请求)和静态内容(如HTML、CSS、...
nginx配置优化+负载均衡+动静分离详解 每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器,可解决动态网页session共享问题
#### 一、Nginx配置负载均衡 **负载均衡**是Nginx的一项核心功能,它能帮助我们将客户端请求分发到不同的服务器上,从而提高系统的稳定性和可用性。 **1.1 配置示例** 要在Nginx中实现负载均衡,首先需要定义一个...
至此,你已经成功配置了Nginx+Keepalived,实现了基于HTTP的负载均衡和动静分离。在主备模式下,如果主服务器出现问题,Keepalived会自动将流量切换到备用服务器。在双主模式下,两个服务器平分流量,当一个节点出现...
标题“Arch-03-15- Nginx+tomcat 配置负载均衡动静分离”涉及的是在Web服务器架构中使用Nginx与Tomcat的集成,通过配置实现负载均衡和动静态资源分离。这样的架构可以提高系统的可用性和响应速度,减轻后端应用...
"Linux 下的 Nginx+Tomcat 负载均衡简单原理" Linux 下的 Nginx+Tomcat 负载均衡简单原理是指通过 ...本文对 Nginx 服务器的安装、配置和负载均衡算法进行了详细的介绍,为读者提供了一个简单的 Nginx 配置文件实例。
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
以下是一个简单的Nginx配置文件示例,展示了如何配置动静分离: ```nginx http { upstream backend { server 192.168.1.10:8080; # Tomcat服务器地址 server 192.168.1.11:8080; # 另一台Tomcat服务器地址 } ...
由于公司使用过Ngnix,对于刚接触Nginx来说,感觉有些好奇,于是研究了下。 本人在windows下使用的版本是nginx-1.8.1: 1. 启动Ngnix 双击nginx-1.8.1文件夹...3. Nginx配置 下面配置综合了网上的资料,记下,防止自己