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

开发 前端
Nginx JSP需要我们学习的东西有很多,下面的文章就是向大家详细的介绍有关知识。希望大家在不断学习中找到如何才能更好的掌握。

本文主要讲述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的详细介绍希望大家有所帮助。

【编辑推荐】

  1. Nginx 启动脚本如何进行自动化启动
  2. nginx配置进行数据输出的两种方式
  3. Nginx Resin安装中的相关技巧和操作流程
  4. nginx squid架构的七大关键流程介绍
  5. nginx反向代理的安装和测试的基本流程
责任编辑:张浩 来源: 博客园
相关推荐

2010-04-13 14:24:16

GNOME桌面环境

2009-07-09 16:24:31

Servlets和JS

2010-03-29 16:00:19

Nginx 虚拟机

2010-05-20 18:45:25

Subclipse安装

2010-03-30 13:59:56

Nginx负载均衡配置

2009-07-08 15:25:56

Servlet和JSP

2010-04-21 13:30:24

Linux rpm命令

2009-06-06 18:43:34

JSP Action

2011-04-01 09:57:02

zabbixagentd

2010-05-26 14:01:47

SVN安装使用手册

2009-07-31 16:28:26

ibmdwJavaJSP

2011-03-08 11:22:32

LAMP安装

2011-01-20 09:08:01

Postfixadmi

2009-07-02 13:46:17

JSP引擎Web服务器

2009-12-23 16:52:46

Linux安装phpm

2010-06-07 12:38:37

Cacti使用手册

2010-05-26 13:51:40

SVN安装使用手册

2009-07-06 15:31:42

JSP Action

2010-06-09 17:01:26

Cacti使用手册

2009-06-30 15:05:52

JSP数据JavaScript数
点赞
收藏

51CTO技术栈公众号