nginx 整合tomcat 配置 学习笔记

原创 2014年05月05日 15:19:32



操作系统: fedora16

服务器: tomcat7

nginx版本:1.6.0


        nginx是一个高性能的http和反向代理服务器,因其稳定性、丰富的功能性、以及低能耗被广泛采用。本文将示范在fedora16上配置安装nginx,并且整合tomcat做服务器负载均衡配置。


Nginx 安装

从官网下载Nginx包  http://nginx.org/en/download.html

在终端su进入root用户(必须以root权限安装,因为安装路径为/usr/local,普通权限无法对该位置的文件进行写操作)。

1.tar -zxvf nginx-1.6.0.tar.gz

2.cd nginx-1.6.0

3../configure--with-http_stub_status_module --with-http_ssl_module--prefix=/usr/local/nginx
 
  这行命令执行后,可能会提示 ./configure: error: the HTTP rewritemodule requires the PCRE library.这个错误,是缺少pcre 包,可用yum install pcrepcre-devlel来解决

4.make && make install

安装成功的话,安装目录为 /usr/local/nginx

       测试是否安装成功,在终端中执行usr/local/nginx/sbin/nginx, 然后在浏览器中输入localhost,若出现 welcome to nginx 则表示安装成功。

       若要关闭Nginx,则在终端中 ps aux | grep nginx  ,然后kill 掉相关进程即可。或者输入usr/local/nginx/sbin/nginx -s stop来停止,该命令 -s 表示将signal 发送到nginx主进程中。



Nginx配置

        Nginx 的配置主要是修改 /usr/local/nginx/conf/nginx,conf文件

#配置用户和用户组

user www www;

#工作进程数,建议设置为CPU的总核数

worker_processes  2;

#全局错误日志定义类型,日志等级从低到高依次为: debug | info | notice | warn | error | crit

error_log  logs/error.log  info;

#记录主进程ID的文件

pid        /usr/local/nginx/nginx.pid;

#一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。但是由于nginx负载并不是完全均衡的,

#所以这个值最好等于最多能打开的文件数。执行 sysctl -a | grep fs.file 可以看到linux文件描述符。

worker_rlimit_nofile 65535;

#工作模式与连接数上限

events {

    #工作模式,linux2.6版本以上用epoll

    use epoll;

    #单个进程允许的最大连接数

    worker_connections  65535;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {

    #文件扩展名与文件类型映射表

    include       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 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息

    access_log  logs/access.log  main;

    #服务器名字的hash表大

    server_names_hash_bucket_size 128;


    #客户端请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,
    #如果header过大,它会使用large_client_header_buffers来读取。

    #如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request
    #如果超过buffer,就会报HTTP 414错误(URI Too Long)
    #nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

    client_header_buffer_size 32k;

    large_client_header_buffers 4 32k;

    #客户端请求体的大小

    client_body_buffer_size    8m;

    #隐藏ngnix版本号

    server_tokens off;

    #忽略不合法的请求头

    ignore_invalid_headers   on;

    #指定启用除第一条error_page指令以外其他的error_page。

    recursive_error_pages    on;

    #让 nginx 在处理自己内部重定向时不默认使用  server_name 设置中的第一个域名

    server_name_in_redirect off;

    #开启文件传输,一般应用都应设置为on;若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载

    sendfile                 on;

    #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。

    tcp_nopush     on;

    #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,

    #这样发送一小块数据信息时就不能立即得到返回值。

    tcp_nodelay    on;

    #长连接超时时间,单位是秒

    keepalive_timeout  65;

    #gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。

    gzip  on;             #开启gzip

    gzip_min_length  1k;          #最小压缩大小

    gzip_buffers     4 16k;        #压缩缓冲区

    gzip_http_version 1.0;       #压缩版本

    gzip_comp_level 2;            #压缩等级

    gzip_types       text/plain application/x-javascript text/css application/xml;           #压缩类型

    #upstream作负载均衡,在此配置需要轮询的服务器地址和端口号,max_fails为允许请求失败的次数,默认为1.

    #weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。

    upstream hostname {

        server 192.168.2.149:8080 max_fails=0 weight=1;

        server 192.168.1.9:8080 max_fails=0 weight=1;

    }

    #主机配置

    server {

        #监听端口

        listen       80;

        #域名

        server_name  hostname;
        #字符集
        charset utf-8;
        #单独的access_log文件
        access_log  logs/192.168.2.149.access.log  main;
        #反代理配置,将所有请求为http://hostname的请求全部转发到upstream中定义的目标服务器中。
        location / {

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://hostname;

            proxy_set_header   X-Real-IP $remote_addr;

        }

        #启用nginx status 监听页面

        location /nginxstatus {

            stub_status on;

            access_log on;

        }

        #错误页面

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;
        }

    }

}

        至此,nginx基本的负载均衡配置完成,实验中部署2台tomcat, 然后访问时返回不同的结果,在浏览器中输入地址,确实能看到不同的返回结果。nginx配置文件的内容还有待于继续学习。


参考:

http://www.blogjava.net/cenly60/archive/2008/12/12/245965.html

http://www.2cto.com/os/201212/176520.html






Nginx+Tomcat的服务器端环境配置详解

Nginx+Tomcat的服务器端环境配置详解

nginx如何配置才能与Tomcat一起使用呢?

1.首先假设有两个域名解析到了服务器上并且服务器上有安装nginx; 2.找到nginx的配置文件,进行如下配置: server { listen 80;//ngin...

Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持

下面是详细的配置(Nginx 端口 80/443,Tomcat 的端口 8080): Nginx 这一侧的配置没什么特别的: upstream tomcat { server 127.0....

Nginx快捷配置Tomcat虚拟主机

Tomcat的webapps目录中,有两个应用:app1、app2,如果没有nginx,我们的访问路径为: http://www.domainname.com:8080/app1 http://www...
  • fbysss
  • fbysss
  • 2015年01月30日 22:21
  • 6837

Windows下Nginx+Tomcat整合的安装与配置

原帖:http://zyjustin9.iteye.com/blog/2017394
  • CCLOVETT
  • CCLOVETT
  • 2014年05月20日 16:29
  • 31247

配置nginx+tomcat

配置nginx并指定默认的jsp目录,官方给了一个jetty的例子 目标:域名http://app29551.qzoneapp.com 直接访问tomcat下的jiuchongju目录的项目 假设...
  • kongqz
  • kongqz
  • 2011年10月01日 12:47
  • 11556

Nginx + Tomcat + HTTPS极速配置

由于最近在学习微信小程序开发,所以在阿里云申请了一个免费的https证书,这个证书申请起来十分简单,大约十几分钟就好。所以不再赘述. 更多信息可以访问我的个人网站:https://www.cjluz...
  • RKun595
  • RKun595
  • 2017年04月30日 13:40
  • 3905

Nginx loaction配置和Tomcat部署方式

昨天写了一个servlet,调试的过程学习到了不少东西。 首先前端和服务端是分开的。前端项目放在nginx中,http请求通过nginx转发。一个表单的action=‘’/ka_upload“,ngi...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

linux下Nginx+tomcat整合的安装与配置

linux下Nginx+tomcat整合的安装与配置 目的:搭建Nginx与tomcat整合,用Nginx代替apache  步骤: 一、安装Tomcat和JDK   1、上传apac...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx 整合tomcat 配置 学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)