热门标签 | 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
到此配置完成!

推荐阅读
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • Linux 基础命令详解
    本文介绍了在 Linux 系统中常见的命令及其用法。当用户登录系统后,默认提示符会显示为 [root@localhost ~]# 或 [user@localhost ~]$,其中 # 表示当前用户为 root,$ 表示普通用户。我们将深入探讨一些常用的 Linux 命令,帮助初学者更好地理解和使用这些工具。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
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社区 版权所有