Nginx + tomcat + SSL 安装配置手册

1. 介绍
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
nginx有以下几项基本特性:
模块化结构
过滤器包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。
高性能
支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。
高稳定性
linux离线安装nginx详细教程
Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。官方表示保持10,000个没有活动的连接,它只占2.5M内存
多负载策略
多种分配策略并且分配均匀
自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等
2. 准备
2.1 资源
Nginx中文网站:inxcn/
Nginx英文网站:/
PCRE网站:/
2.2 相关软件
1) PCRE
PCRE(Perl Compatible Regular Expressions)中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库
neginx中使用正则表达式进行灵活配置,安装之前需要确认PCRE已安装。
下载地址:/,使用版本pcre-8.
2) nginx-upstream-jvm-route
nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能
下载地址(svn): lecode/svn/trunk/
3. 部署结构
4. 环境安装
4.1 Windows版安装
安装文件为.zip文件,解压缩后,运行目录中的(或使用命令),服务启动。
浏览器中输入:192.168.15.30,出现“Welcome to nginx!”页面,安装成功。
4.2 Linux版安装
安装说明
本例将nginx安装在/home/apps目录下。
pcre-8.12.nginx-0.8.文件ftp到/home/apps目录下。
nginx-upstream-jvm-route文件夹ftp到/home/apps目录下。
    安装步骤
1) PCRE安装
#cd /home/apps
#tar –zxf pcre-8.12.
        #cd pcre-8.12
        #./config
        #make
        #make install
        默认安装路径为:/usr/local/lib
2) nginx-upstream-jvm-route安装
#cd /home/apps
        #tar zxf nginx-0.8.
        #mv nginx-0.8.54 nginx-0.8.54-src
        #cd nginx-0.8.54-src
        # patch -p0 < ../nginx-upstream-jvm-route/jvm_route.patch
3) nginx安装
#cd /home/apps/nginx-0.8.54
        #./configure --prefix=/home/apps/nginx-0.8.54 --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/home/apps/nginx-upstream-jvm-route
        #make
        #make install
启动、验证
        #cd /home/apps/nginx-0.8.54/sbin
        #./nginx
        浏览器中输入:192.168.15.30,出现“Welcome to nginx!”页面,安装成功。
5. Nginx配置
5.1 通用参数配置
1) worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。(网上经验,设置为cpu数的两倍)。
2) worker_connections:每个工作进程允许最大的同时连接数。
5.2 负载均衡配置
说明
Nginx使用upstream模块配置负载均衡,upstream目前支持5钟配置方式,每种方式是不同的负载策略,除了这五种外可以使用nginx-upstream-jvm-route扩展模块,在配置部分会针对6中进行示例。
准备工作
安装nginx-upstream-jvm-route扩展模块。修改tomcat的l文件,在“<Engine节点增加“jvmRoute="tomcat1"”和“jvmRoute="tomcat2"”。
配置
1) 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
          upstream ppg
            {
                    server 192.168.15.40:8080;
                    server 192.168.15.41:8081;
            }
2) weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。weight 默认为1.weight越大,负载的权重就越大。
        upstream ppg
        {
                server 192.168.15.40:8080 weight=1;
                server 192.168.15.41:8081 weight=2;
        }
3) ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream ppg
        {
                ip_hash;
                server 192.168.15.40:8080;
                server 192.168.15.41:8081;
        }
4) fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
        upstream ppg
        {
                server 192.168.15.40:8080;
                server 192.168.15.41:8081;
                fair;
        }
5) url
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
        upstream ppg
        {
                server 192.168.15.40:8080;
                server 192.168.15.41:8081;
hash $request_uri;
hash_method crc32;
        }
6) nginx-upstream-jvm-route
Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能
        upstream ppg
        {
                server 192.168.15.40:8080 srun_id=tomcat1;
                server 192.168.15.41:8081 srun_id=tomcat2;
                jvm_route $cookie_JSESSIONID|sessionid reverse;
        }
5.3 SSL模块配置
准备证书,使用openssl将p12文件导出服务器证书文件、服务器私钥文件、客户证书的签发证书(CA证书)。见openssl命令。
说明
Nginx可是实现SSL的配置,实现单向和双向认证,并能够验证证书的状态。
准工作
配置单项SSL需要准备服务器证书文件和私钥文件,配置双向SSL还需要准备用户证书的签发证书。
CA服务器证书文件为p12格式(nginx不能配置p12格式?),需将p12格式转化为crt/cer、key文件格式。使用openssl做转换,命令如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。