热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS6.2系统中配置Nginx1.3+tomcat7服务器环境

实验环境和软件版本:CentOS6.2,nginx-1.3.0.tar.gz,apache-tomcat-7.0.27.tar.gz,jdk-6u11-linux-i586-rpm.bin.gz一、安装Tomcat、JDK1、上传tar包到系统的/usr/local目录下2、解压缩apache-tomcat-7.0.2
实验环境和软件版本:CentOS6.2,nginx-1.3.0.tar.gz,apache-tomcat-7.0.27.tar.gz,jdk-6u11-linux-i586-rpm.bin.gz

一、安装Tomcat、JDK
1、上传tar包到系统的/usr/local目录下
2、解压缩apache-tomcat-7.0.27.tar.gz,并更名为tomcat7(方便记)
#tar zxvf apache-tomcat-7.0.27.tar.gz
#mv apache-tomcat-7.0.27  tomcat7
3、解压缩JDK并安装(如果你安装系统时已经安装了java环境, 则3、4步骤可省略)
#gunzip jdk-6u11-linux-i586-rpm.bin.gz
#./jdk-6u11-linux-i586-rpm.bin
4、配置环境变量
编辑/etc/profile文件(注:养成编辑前备份的好习惯)
#cd /etc/
#cp profile profile.bak
追加如下内容:
JAVA_HOME="/usr/java/jdk1.6.0_11"  
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"  
PATH=".:$PATH:$JAVA_HOME/bin "  
CATALINA_HOME="/usr/local/tomcat7"  
export JAVA_HOME CATALINA_HOME  
5、启动Tomcat并检测安装是否成功
 #cd /usr/local/tomcat7/bin/
#./startup.sh
浏览器中输入:http://ip:8080/,看看是否会出现一个猫。前提是你的firewall必须放开对8080的访问。
6、设置Tomcat的服务目录
#cd /usr/local/tomcat7/conf/
编辑server.xml文件:找到
appBase="webapps" unpackWARs="true" autoDeploy="true">
在其后追加:
reloadable="true"/>
将“/var/www/html”换成你自己的放置网站的目录。
再次打开http://ip:8080/,看是否是你想要访问的页面。

二、安装Nginx
1、获取Nginx-1.3.0,并解压
#cd /usr/local/
#wget http://nginx.org/download/nginx-1.3.0.tar.gz
#tar zxvf nginx-1.3.0.tar.gz
2、编译安装
#cd nginx-1.3.0  
#./configure --with-http_stub_status_module --with-http_ssl_module  #启动server状态页和https模块 
#make  
可能出现的错误:
错误1、
[root@localhost nginx-1.3.0]# ./configure  --with-http_stub_status_module --with-http_ssl_module   
checking for OS   
 + Linux 2.6.32-220.el6.i686 i686   
checking for C compiler ... not found   
./configure: error: C compiler gcc is not found  
原因:缺少gcc包
解决方式:#yum -y install gcc
错误2、
libtool: compile: unrecognized option `-DHAVE_CONFIG_H'   
libtool: compile: Try `libtool --help' for more information.   
make[1]: *** [pcrecpp.lo] 错误 1  
make[1]: Leaving directory `/usr/local/pcre-8.30'   
make: *** [all] 错误 2  
原因:缺少包
解决方式:#yum -y install gcc-c++
重新执行
#./configure --with-http_stub_status_module
--with-http_ssl_module  #启动server状态页和https模块
#make
错误3、缺少pcre library,这个是http rewrite的模块。
解决方式:
#cd /usr/local/   
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz   
#cd pcre-8.30  
#./configure   
#make   
#make install  
继续安装Nginx:
 #./configure --with-http_stub_status_module --with-http_ssl_module #make
#make install
4、简要配置Nginx。
安装成功后的nginx在/usr/local/nginx.
在/usr/local/nginx/conf/下新建proxy.conf,用于配置一些代理参数,内容如下:
#!nginx (-)    
# proxy.conf    
proxy_redirect          off;   
proxy_set_header        Host $host;   
proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip   
#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip   
client_max_body_size    10m;   
client_body_buffer_size 128k;   
proxy_connect_timeout   90;   
proxy_send_timeout      90;   
proxy_read_timeout      90;   
proxy_buffer_size       4k;   
proxy_buffers           4 32k;   
proxy_busy_buffers_size 64k;   
proxy_temp_file_write_size 64k;   
编辑conf/nginx.conf文件,内容如下:
#运行nginx所在的用户      
#user  nobody;       
#启动进程数      
worker_processes 8;      
#全局错误日志及PID文件      
error_log  /usr/local/nginx/logs/nginx_error.log  crit;      
pid        /usr/local/nginx/nginx.pid;      
#Specifies the value for maximum file descriptors that can be opened by this process.      
worker_rlimit_nofile 65535;      
#工作模式及连接数上限      
events      
{      
  use epoll;      
  worker_connections 65535;      
}      
#设定http服务器,利用它的反向代理功能提供负载均衡支持      
http      
{      
  #设定mime类型      
  include       mime.types;      
  default_type  application/octet-stream;      
  include /usr/local/nginx/conf/proxy.conf;      
  #charset  gb2312;      
  #设定请求缓冲          
  server_names_hash_bucket_size 128;      
  client_header_buffer_size 32k;      
  large_client_header_buffers 4 32k;      
  client_max_body_size 8m;  (在1.3中加入这个参数验证配置时报错,就去掉了)    
  sendfile on;      
  tcp_nopush     on;      
  keepalive_timeout 60;      
  tcp_nodelay on;      
#  fastcgi_connect_timeout 300;      
#  fastcgi_send_timeout 300;      
#  fastcgi_read_timeout 300;      
#  fastcgi_buffer_size 64k;      
#  fastcgi_buffers 4 64k;      
#  fastcgi_busy_buffers_size 128k;      
#  fastcgi_temp_file_write_size 128k;      
#  gzip on;      
#  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;      
#  gzip_vary on;      
  #limit_zone  crawler  $binary_remote_addr  10m;      
 ###禁止通过ip访问站点      
  server{      
        server_name _;      
        return 404;      
  }
  server      
  {      
    listen       80;      
    server_name  www.xxx.com;      
    index index.html index.htm index.jsp;#设定访问的默认首页地址      
    root  /var/www/html;#设定网站的资源存放路径      
    #limit_conn   crawler  20;          
    location / {   
            root   /var/www/html;   
            index  index.html index.htm;   
    }   
    location ~ \.(jsp|jspx\do)?$ {   
           index index.jsp;   
           proxy_pass http://localhost:8080;   
    }   
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat      
    {      
      expires      30d;      
    }      
    location ~ .*\.(js|css)?$      
    {      
      expires      1h;      
    }          
#定义访问日志的写入格式      
     log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '      
              '$status $body_bytes_sent "$http_referer" '      
              '"$http_user_agent" $http_x_forwarded_for';      
    access_log  /usr/local/nginx/logs/localhost.log access;#设定访问日志的存放路径      
      }      
}    
5、验证配置
#/usr/local/nginx/sbin/nginx -t
错误:
[root@localhost conf]# /usr/local/nginx/sbin/nginx -t   
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory   
解决方法:在/lib中创建一个symbol link到/usr/local/lib/libpcre.so.1
 [root@localhost conf]# ln -s /usr/local/lib/libpcre.so.1
/lib
若出现如下信息,则表示配置正确,否则需按错误提示进行配置文件更正
nginx: the configuration file /usr/local/nginx/conf/nginx.conf
syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is
successful
6、启动Nginx服务
#/usr/local/nginx/sbin/nginx
出现告警信息:
nginx: [warn] the "log_format" directive may be used only on
"http" level in /usr/local/nginx/conf/nginx.conf:
这是新版本的问题,需要我们将log_format的定义放到server的前面。如果你是直接更改的nginx.conf文件,你会发现这一句原本就是在server的前面的。
查看nginx主进程:
#ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F
' ' '{print $2}'
7、停止Nginx服务
#/usr/local/nginx/sbin/nginx -s stop

三、联合测试
在/var/www/html/下新建两个文件index.html,index.jsp,内容如下:
[root@localhost bin]# cat /var/www/html/index.html
hello world
[root@localhost bin]# cat /var/www/html/index.jsp





<%out.println("Hello World!");%>


用浏览器分别访问 http://ip/index.html
http://ip/index.jsp,
http://ip:8080/index.jsp
到此配置完成!

推荐阅读
author-avatar
袁善恩芷恩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有