文章目录
一.nginx简单介绍
Nginx是一款轻量级兼备高性能的Http和反向代理服务器。所谓反向代理就是指在用户发起访问请求,由代理服务器接收,然后将请求转发给正式服务器,并且将正式服务器处理完的数据返回给客户端,此时代理服务器就表现为一个服务器。这么做看起来多经过了一步,稍显麻烦,但实则是好处多多.
- 热部署
我个人觉得这个很不错。在master管理进程与worker工作进程的分离设计,使的Nginx具有热部署的功能,那么在7×24小时不间断服务的前提下,升级Nginx的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。 - 可以高并发连接
这是一个很重要的一个特性!在这一个 互联网 快速发展, 互联网 用户数量不断增加,一些大公司、网站都需要面对高并发请求,如果有一个能够在峰值顶住10万以上并发请求的Server,肯定会得到大家的青睐。理论上,Nginx支持的并发连接上限取决于你的内存,10万远未封顶。 - 低的内存消耗
在一般的情况下,10000个非活跃的HTTP Keep-Alive 连接在Nginx中仅消耗2.5M的内存,这也是Nginx支持高并发连接的基础。 - 处理响应请求很快
在正常的情况下,单次请求会得到更快的响应。在高峰期,Nginx可以比其他的Web服务器更快的响应请求。 - 具有很高的可靠性
Nginx是一个高可靠性的Web服务器,这也是我们为什么选择Nginx的基本条件,现在很多的网站都在使用Nginx,足以说明Nginx的可靠性。高可靠性来自其核心框架代码的优秀设计、模块设计的简单性;并且这些模块都非常的稳定。
二.安装nginx和tomcat
nginx的安装教程参见<使用fastDFS从头搭建文件服务器>;
tomcat的安装教程参见CentOS中的<阿里云centOS手工部署Java Web项目>.
三.nginx配置
常用命令:
#打开配置文件
# vi /usr/local/nginx/conf/nginx.conf
#查看nginx进程
#ps aux |grep nginx
# cd /usr/local/nginx/sbin/
# ./nginx
或者直接:
启动
# /usr/local/nginx/sbin/nginx
停止
# /usr/local/nginx/sbin/nginx -s stop
重启
# /usr/local/nginx/sbin/nginx -s reload
其它命令
# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload
#使用用户与安装用户保持一致,不然可能会报403 Forbidden,window下不指定
user root;
#启动进程,通常设置成和cpu的数量相等
worker_processes 1;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能;使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
worker_connections 1024; #51200=1024*50,单个后台worker process进程的最大并发链接数
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型,类型由mime.type文件定义
include /etc/nginx/mime.types;
default_type application/octet-stream;
#设定日志格式
#access_log /var/log/nginx/access.log;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.其主要作用是加快对静态文件的处理。默认情况下是开启(on)状态。
sendfile on;
tcp_nopush on;#属于nginx静态资源配置模块,把多个包一次性整合之后再发送给客户端,而不是一次次发,在sendfile开启的情况下,提高网络包的传输效率,可在http、server和location中配置,默认是关闭(off)状态。
tcp_nodelay on;#属于nginx静态配置模块,尽量的把包发送出去,不要等待,用在实时性有要求的场景。一般在keepalive连接下,提高网络 包的传输实时性,可在http、server和location中配置,默认是开启(on)状态。看上去是和tcp_nopush相反的功能,但是两边都为on时nginx也可以平衡这两个功能的使用。
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#设定负载均衡的服务器列表,这里的域名要和下面proxy_pass的一样
upstream test {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的Squid开启3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1