您的位置: 飞扬精品软件园 >> 文章中心 >> 网络通讯 >> 服务器类 >> Nginx JSP安装和使用的菜鸟手册

相关文章链接

本类文章排行

最新新闻资讯

    Nginx JSP安装和使用的菜鸟手册

    Nginx JSP安装和使用的菜鸟手册


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-07-27

    本文主要讲述Nginx JSP如何进行安装和使用,但是要怎样创建Nginx JSP呢?这些内容都是一些门户网站和技术论坛找到的,中间可能有不少错误是我没有挑出的,欢迎大家指正。

    为了确保能在Nginx JSP中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包,rpm包和tar.gz都可以

    Rpm包如下:

    1. pcre-6.6-1.1  
    2. pcre-devel-6.6-1.1  
    3. tar.gz包  
    4. #wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz  
    5. #tar zxvf pcre-7.7.tar.gz  
    6. #cd pcre-7.7  
    7. # ./configure  
    8. # make  
    9. # make install 

    如果没有的话会报类似如下错误:

    1. ./configure: error: the HTTP rewrite module requires the PCRE library.   
    2. You can either disable the module by using --without-http_rewrite_module   
    3. option, or install the PCRE library into the system, or build the PCRE library   
    4. statically from the source with nginx by using --with-pcre=<path> option. 

    2 安装 Nginx JSP

    1. #wget http://sysoev.ru/nginx/nginx-0.7.14.tar.gz  
    2. # tar zxvf nginx-0.7.14.tar.gz   
    3. #cd nginx-0.7.14  
    4. #./configure --prefix=/usr/local/nginx --with-http_stub_status_module  
    5. #make  
    6. #make install 

    说明:

    参数 --with-http_stub_status_modul是为了启用nginx的 NginxStatus 功能,用来监控 Nginx 的当前状态
    --prefix=/usr/local/nginx 指定安装目录更详细的参数参考./configure --help
    安装成功后 /usr/local/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于 conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

    关于Nginx JSP的几个命令简单说明:

    -c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的。
    -t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
    -v 显示 nginx 的版本。
    -V 显示 nginx 的版本,编译器版本和配置参数

    3配置 nginx.conf

    修改配置文件 /usr/local/nginx/conf/nginx.conf下面是一个配置给出些说明:

    1. user nobody nobody; #工作进程的属主  
    2. worker_processes 2; # 工作进程数,一般与 CPU 核数等同  
    3. error_log /usr/local/nginx/logs/nginx_error.log crit;  
    4. pid /usr/local/nginx/nginx.pid;  
    5. #Specifies the value for maximum file descriptors that can 
      be opened by this process.  
    6. worker_rlimit_nofile 51200;  
    7. events  
    8. {  
    9. use epoll;  
    10. worker_connections 51200; # 每个工作进程允许最大的同时连接数  
    11. }  
    12. http  
    13. {  
    14. include mime.types;  
    15. default_type application/octet-stream;  
    16. charset gbk;  
    17. server_names_hash_bucket_size 128;  
    18. sendfile on;  
    19. tcp_nopush on;  
    20. keepalive_timeout 60;  
    21. tcp_nodelay on;  
    22. gzip on;  
    23. # gzip_min_length 1k;  
    24. # gzip_buffers 4 8k;  
    25. # gzip_http_version 1.1;  
    26. # gzip_types text/plain application/x-javascript text/css 
      text/html application/xml;  
    27. server  
    28. {  
    29. listen 80; #nginx侦听端口  
    30. server_name localhost;  
    31. index index.jsp index.html index.htm ;  
    32. root /usr/local/www;#web的工作目录  
    33. if (-d $request_filename)  
    34. {  
    35. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;  
    36. }  
    37. #加下面这段是因为我发行如果首页是index.jsp的话好像不能默认通过
      index.jsp来解析  
    38. location / {  
    39. root /usr/local/www;   
    40. index index.jsp;  
    41. proxy_pass http://localhost:8080;  
    42. }  
    43. #以扩展名方式匹配静态文件  
    44. Location ~* \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|
      js|zip|java|jar|txt|flv|swf|txt|wma)$   
    45. {   
    46. root /usr/local/www;   
    47. expires 24h;   
    48. }  
    49. #以目录方式匹配静态目录  
    50. Location ~ ^/(images|common|cooperation|download|huodong|
      inc|magic|manager|produces|pages|secert|SinaEditor|styles|
      javascript)/  
    51. {   
    52. root /usr/local/www;  
    53. expires 30d;  
    54. }  
    55. #以扩展名方式匹配动态文件  
    56. location ~* \.(jsp|do)$   
    57. {  
    58. root /usr/local/www;  
    59. index index.jsp;  
    60. include /usr/local/nginx/conf/proxy.conf; # 加载proxy.conf 
      也就是测试中用来链接JSP  
    61. proxy_pass http://localhost:8080;  
    62. proxy_set_header X-Real-IP $remote_addr;  
    63. }  
    64. #让我的nginx也支持php  
    65. location ~ .*\.php?$  
    66. {  
    67. include fcgi.conf;  
    68. #fastcgi_pass unix:/tmp/php-cgi.sock;  
    69. fastcgi_pass 127.0.0.1:9000;  
    70. fastcgi_index index.php;  
    71. }  
    72. #注意如果开启下面这几段的话就不能有上文中location / {的部分否则会
      报错,也就是只能有一个location / {  
    73. # location / {  
    74. # include /usr/local/nginx/conf/proxy.conf;  
    75. # proxy_pass http://localhost:8080;  
    76. # proxy_set_header X-Real-IP $remote_addr;  
    77. # }  
    78. log_format access '$remote_addr - $remote_user [$time_local] 
      "$request" '  
    79. '$status $body_bytes_sent "$http_referer" '  
    80. '"$http_user_agent" $http_x_forwarded_for';  
    81. access_log /usr/local/nginx/logs/access.log access;  
    82. }  
    83. server  
    84. {  
    85. listen 84;#让nginx的NginxStatus功能运行在我的84端口,当然自己配
      置对应的server_name也可以  
    86. server_name localhost;  
    87.  
    88. location / {  
    89. stub_status on;  
    90. access_log off;  
    91. }  
    92. }  

     

    关于include /usr/local/nginx/conf/proxy.conf; # 加载proxy.conf 也就是测试中用来链接JSP
    Vi /usr/local/nginx/conf/proxy.conf

    内容如下:

    1. # proxy.conf  
    2. proxy_redirect off;  
    3. proxy_set_header Host $host;  
    4. proxy_set_header X-Real-IP $remote_addr;  
    5. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    6. client_max_body_size 10m;  
    7. client_body_buffer_size 128k;  
    8. proxy_connect_timeout 90;  
    9. proxy_send_timeout 90;  
    10. proxy_read_timeout 90;  
    11. proxy_buffers 32 4k;  
    12. 关于#让我的nginx也支持php  
    13. location ~ .*\.php?$  
    14. {  
    15. include fcgi.conf;  
    16. #fastcgi_pass unix:/tmp/php-cgi.sock;  
    17. fastcgi_pass 127.0.0.1:9000;  
    18. fastcgi_index index.php;  

     

    这段不做详细说明了:

    启动Nginx JSP

    测试配置文件有无问题,例如:

    1. #/usr/local/nginx/sbin/nginx –t  
    2. 2008/09/09 12:16:13 [info] 17651#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  
    3. 2008/09/09 12:16:13 [info] 17651#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully 

    上面说明配置文件没有问题启动

    1. #/usr/local/nginx/sbin/nginx 

    查看是否启动了

    1. # ps fax|grep nginx  
    2. 17966 pts/1 S+ 0:00 \_ grep nginx  
    3. 17514 ? Ss 0:00 nginx: master process /usr/local/nginx/sbin/nginx  
    4. 17515 ? S 0:00 \_ nginx: worker process   
    5. 17516 ? S 0:00 \_ nginx: worker process  

    NginxStatus功能说明如下:

    1. http://192.168.1.145:84/  
    2. Active connections: 9   
    3. server accepts handled requests  
    4. 14 14 150   
    5. Reading: 0 Writing: 1 Waiting: 8  

    active connections -- 对后端发起的活动连接数
    server accepts handled requests -- nginx 总共处理了 14 个连接, 成功创建 14 次握手 (证明中间没有失败的), 总共处理了 150 个请求
    reading -- nginx 读取到客户端的 Header 信息数。
    writing -- nginx 返回给客户端的 Header 信息数。
    waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接

    取服务器信息

     

    1. HTTP/1.1 200 OK  
    2. Server: nginx/0.7.14  
    3. Date: Tue, 09 Sep 2008 07:22:03 GMT  
    4. Content-Type: text/html;charset=GBK 
    5. Transfer-Encoding: chunked  
    6. Connection: keep-alive  
    7. Set-Cookie: JSESSIONID=049F77C0BE388C3C942A4A80EE1DA346Path=/ 

    以上就是对Nginx JSP的详细介绍希望大家有所帮助。


查看所有评论

网友对Nginx JSP安装和使用的菜鸟手册的评论

网名:
主题:
内容:
验证码: