摘要

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

Nginx 发布

当前稳定版: Nginx 0.6.35 (更新记录) ( 2009年1月26日)

当前开发版: Nginx 0.7.44 (更新记录) ( 2009年3月23日)

历史稳定版: Nginx 0.5.37 (更新记录) ( 2008年7月7日)

Nginx文档地址

http://wiki.nginx.org/NginxChs

注意点

1 Nginx并不支持Windows,只能在Linux,Unix,BSD 系统下安装使用

2 Nginx本身是一个HTTP和反向代理服务器,无法像Apache一样通过安装各种模块来支持不同的页面脚本(PHP,CGI)

3 Nginx支持简单的负载均衡和容错

4 Nginx支持作为基本HTTP 服务器的功能,例如日志,压缩,SSL,虚拟主机等。

环境

RedHat Linux Enterpriser Server 5

Nginx-0.6.31

( 稳定版本)

JDK 1.6

Tomcat 6.0.18

安装

创建用户组和帐号

#/usr/sbin/groupadd www -g 48

#/usr/sbin/useradd -u 48 -g www www

#wget http://sysoev.ru/nginx/nginx-0.6.31

.tar.gz

#tar zxvf nginx-0.6.31

.tar.gz

#cd nginx-0.6.31

#./configure --with-http_stub_status_module --prefix=/usr/local/nginx

--user=www --group=www

#make

#make isntall

#--with-http_stub_status_module 是为了启用nginx的status功能,用来监控Nginx的当前状态安装后,有四个子目录conf/nginx.conf html logs sbin/nginx

确保系统80端口没有被其他程序占用,运行sbin/nginx启动,浏览器访问。

#/usr/local/nginx/sbin/nginx

编译rewrite模块

需要正则表达式,需要安装pcre包

#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz

#tar zxvf pcre-7.7.tar.gz

#cd pcre-7.7

#./configure

#make

#make install

程序运行参数:

Nginx安装后只有一个程序文件,使用参数和系统信号机制对Nginx进程本身进行控制。

-c <path_to_config>:使用指定的配置文件

-t :测试配置文件是否正确,在运行时需要重新加载配置文件,用来测试所修改配置文件是否有错误语法

-v :显示版本号

-V :显示版本号和编译环境信息和编译参数

#sbin/nginx -t -c conf/nginx2.conf

通过信号对Nginx进行控制:支持的信号:

TERM 快速关闭彻骨女婿,中止当前正在处理请求INT QUIT 处理完当前请求后,关闭程序 HUP 重新加载配置,并开始启动新的工作进程,关闭旧的进程,此操作不会中断请求

USER1 重新打开日志文件,用于切换日志,如:每天生成一个新的日志文件

USER2 平滑升级可执行程序

WINCH 从容关闭工作进程

两种方式:

1 通过logs下的nginx.pid 查看当前运行的进程id ,kill - XXX <pid> 来控制进程。XXX就是信号明。

2 也可以使用killall 来完成。如killall -s HUP nginx 来重新加载配置文件。

配置

conf/nginx.conf文件:

user www www; # 工作进程的宿主

worker_processes 8; # 工作进程数,一般跟CPU核数目相同

#error_log logs/error.log; debug 模式

error_log logs/error.log notice;

#error_log logs/error.log info;

pid        logs/nginx.pid;

gzip on; #打开gzip模式

gzip_camp_level 5; #压缩级别 1-9 ,1 最快,9最慢

gzip_min_length 1100;

gzip_buffers 4 8 k;

worker_rlimit_nofile 51200;

events {

use epoll; # Linux下性能最好的event

worker_connections 51200; #每个进程允许最大的连接数

}

#access_log logs/access.log main; #日志文件名

upstream tomcat{

server 192.168.0.119:5050 down;

server 192.168.0.117:5050 weight=1;

server 192.168.0.142:5050 weight=1;

}

include /usr/local/nginx/conf/proxy.conf;

location / {

root   html;

index index.html index.htm;

proxy_pass http://tomcat;

}

location /NginxStatus {

stub_status             on;

access_log              off;

allow all;

#auth_basic              "status";

#auth_basic_user_file conf/htpasswd;

}

# 静态文件和图片服务器时使用

location ~ ^/p_w_picpaths/{

root /opt/webapp/p_w_picpaths;

}

location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js|txt)${

root /opt/webapp;

access_log off;

expires 24h;

}

expires 60s;#30m

24h 1d max off

location / {

proxy_pass http://localhost:8080;

proxy_set_header X-Real-IP $remote_addr;

}

location / {

proxy_pass http://tomcat;

proxy_set_header X-Real-IP $remote_addr;

}

#Nginx使用最简单的平均分配规则给集群的节点。若一个失效,或重新起效时,Nginx会自己处理状态的变化。

proxy.conf 文件

#!nginx (-)

# proxy.conf

proxy_redirect          off;

proxy_set_header        Host            $host;

proxy_set_header        X-Real-IP       $remote_addr;

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size    10m

;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffers           32 4k;

#sbin/nginx -t

#ulimit -SHn 51200

#sbin/nginx

#kill -HUP 'cat /usr/local/nginx/logs/nginx.pid'

#重新加载新的配置文件

监控:

http://localhost/NginxStatus

active connections :当前正在处理的活动连接数。

server accepts handled requests:总共处理的n个连接,成功创建n次握手(证明中间没有

失败的),总共处理了n个请求。

reading: 读取到客户端的Header信息数。

writing: 返回给客户端的Header信息数。

waiting: 开启keep-alive 情况下,该值等于active -(reading+writing),nginx已经在处

理完成正在等候下一次请求指令的驻留连接。

总结:

一般可以对nginx的worker_processes和

worker_connections进行调整,来达到性能的调优。

转载于:https://blog.51cto.com/lya041/691329

Nginx + Tomcat 负载均衡集群配置相关推荐

  1. Nginx+Tomcat 负载均衡集群方案

    2019独角兽企业重金招聘Python工程师标准>>> Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试 ...

  2. 搭建Nginx+Tomcat 负载均衡集群

    Nginx+Tomcat 负载均衡集群 一. 实验拓扑: 二. 实验要求: 1. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar ...

  3. 使用Redis存储Nginx+Tomcat负载均衡集群的Session

    配置Tomcat的session共享可以有三种解决方案: 第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的. 第二种是利用web容器本身的 ...

  4. windows配置nginx实现负载均衡集群

    windows配置nginx实现负载均衡集群 2014-08-20 09:44:40   来源:www.abcde.cn   评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是li ...

  5. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载

    转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...

  6. Linux平台上搭建apache+tomcat负载均衡集群

    传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...

  7. nginx反向代理模块配置详解_Nginx(三):反向代理负载均衡集群配置详解

    概述: 本篇主要总结Nginx实现反向代理和负载均衡功能相关模块的配置说明.主要使用到的模块如下:ngx_http_proxy_moduleNginx实现反向代理功能 ngx_http_upstrea ...

  8. linux下apache tomcat jk集群,apache tomcat 负载均衡集群和session复制 基于jk

    apache服务器和tomcat的连接方法其实有三种:JK.http_proxy和ajp_proxy,本文主要介绍最为常见的JK. 基于centos5.5 linux下配置: 1.安装tomcat7. ...

  9. Nginx搭建负载均衡集群

    (1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策 ...

最新文章

  1. 'libxml/tree.h' file not found
  2. 27 多进程之进程池Pool
  3. java小游戏毕业论文,你不懂还不学?
  4. 华硕笔记本电池软件_华硕灵耀X逍遥测评:11代酷睿处理器加持,王者归来
  5. directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
  6. 免费申请微软云教育服务器,自助免费申请Office365教育版,免费5TOneDrive云盘详细教程...
  7. 怎么检查计算机和打印机是否连接网络,如何检查电脑中是否已成功连接网络打印机...
  8. 《代码大全2》第3章 三思而后行,前期准备
  9. 微信气泡主题设置_华为手机微信怎么设置气泡? 怎样改微信的气泡和主题
  10. 《Qt5:键盘事件》
  11. FIR滤波器与IIR滤波器
  12. 为12306说几句好话
  13. TIOBE 2 月编程语言榜:C++ 势不可挡
  14. 基于51单片机智能家居家电继电器开关插座定时WiFi无线proteus仿真原理图PCB
  15. Java基础之-内部类(成员内部类,静态内部类,局部内部类,匿名内部类)
  16. ZZNUOJ 1117
  17. 你必须知道的推广渠道及投放效果指标
  18. 苏杰:无线和PC产品的区别
  19. python爬虫数据解析xpath解析详细讲解——附有详细案例
  20. Qt中操作excel

热门文章

  1. 字节最新文本生成图像AI,训练集里居然没有一张带文字描述的图片?!
  2. 全球 43 亿 IPv4 地址宣告耗尽!
  3. 快手百度 4.34 亿美元投资知乎;腾讯回应“push团队全部被开”;Android Q Beta 6 发布!...
  4. 程序猿才感同身受的10个图!
  5. ServiceMesh有关sidecar理解
  6. Linux之查看命令帮助 --help man
  7. kali linux解决:ping: www.baidu.com: 未知的名称或服务(亲测有效)(走了两个弯路,浪费了好多时间)
  8. SVO: 视觉SLAM中特征点法与直接法结合
  9. 轻量级语义分割网络:ENet
  10. 使用OpenCV进行直播(附代码)