`
淘气天空lc
  • 浏览: 47935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx整合tomcat(solr)

阅读更多

     一台测试机,为了多个项目同时在一台测试机上测试,可以使用了nginx挂载多个tomcat应用。我使用的ubuntu 12.0.4。

准备:下载nginx : http://nginx.org/download/nginx-1.5.0.tar.gz

        : 下载tomcat:http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz

如果链接无效,可以去官网上面下载。也可以使用附件里的包。

export.zip:http://pan.baidu.com/share/link?shareid=2574750123&uk=168777878

tomcat:http://pan.baidu.com/share/link?shareid=2589332527&uk=168777878

solr.zip:http://pan.baidu.com/share/link?shareid=2595428937&uk=168777878

 

1.安装nginx

  ubuntu系统自带了一个版本的系统 需要先卸载:sudo apt-get --purge remove nginx

  创建nginx存放目录,这个可以随便定,我放在/export/servers/nginx 首先创建文件夹,命令如下:

 

$cd /
$mkdir export 
$cd export 
$mkdir servers
$cd servers
$mkdir nginx
$cd nginx

  把之前下载的nginx 包 放到/export/servers/nginx 目录下并解压压缩包

 

$tar -xzvf nginx-1.5.0.tar.gz
$cd nginx-1.5.0

  接下来编译安装:

 

$cd /export/servers/nginx/nginx-1.5.0
$./configure --prefix=/export/servers/nginx/nginx-1.5.0/sbin
$make 
$sudo make install

 

 

 执行可能报错:

 

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

 

 原因缺少pcre library

 解决方法:

 下载pcre 官网 http://www.pcre.org/

 下载地址: http://sourceforge.net/projects/pcre/files/pcre/8.33/pcre-8.33.tar.gz/download

 

#解压包
$tar -xzvf pcre-8.33.tar.gz
$cd pcre-8.33
$sudo ./configure --prefix =/usr/local/pcre
$sudo make 
$sudo make install
 

 

 悲剧的是在执行./confugure时候还是会报错

 

configure: error: You need a C++ compiler for C++ support.
 

 

 从错误中看没有g++,没办法只能安装

 

$sudo apt-get install g++
 

 

 然后执行上面的安装pcre 如果还是报错,看看少什么就安装什么。

 我这最后安装成功,如果回去继续安装nginx,继续报错,少了zlib按照上面的方法安装

 

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib 
library statically from the source with nginx by using --with-zlib=
<path> option.
 

 

 解决上面的问题 继续重复之前的安装。这次终于没有问题了,也可以在安装是先disbale这两个模块,以后需要了安装。执行下面:

 

$./configure --prefix=/export/servers/nginx/nginx-1.5.0/sbin  --withou
t-http_rewrite_module --without-http_gzip_module
$make
$make install
 启动nginx

 

 

$cd /export/servers/nginx/nginx-1.5.0/sbin/sbin
$./nginx
浏览器访问localhost

 

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

 

nginx安装成功:

nginx是个优秀的反向代理服务器,用户访问web应用的时候,直接面对的的nginx,而真正的web服务器就挂载在nginx后面,继而解决之前的如何将tomcat挂载到nginx下面,接下来讨论

 1.部署tomcat 实例

   我创建两个tomcat实例,然后分别在两个tomcat下面,各放一个solr应用,如果想了解solr可以参考(http://lucene.apache.org/solr/),其实solr就是一个web应用。具体就不介绍了。我主要是搭建一个master/slave solr应用。同时挂在nginx下面。首先安装两个tomcat:

创建两个文件夹:

/export/home/tomcat/domains/master.solr.com/server1 和 /export/home/tomcat/domains/slave.solr.com/server1

解压tomcat-6.0.37.tar.gz 然后把里面的所有文件全部拷贝到这两个文件下面。

 

root@lcpc:/export/home/tomcat/domains/master.solr.com/server1$ ls
bin   lib      logs    RELEASE-NOTES  temp     work
conf  LICENSE  NOTICE  RUNNING.txt    webapps
  上面是两个文件夹的内容。tomcat安装完成,如果添加更多项目,类似。

接下来创建项目的文件的存放文件夹,因为有两个项目所以创建两个文件夹:

/export/data/WebRoot/master.solr.com 和 /export/data/WebRoot/slave.solr.com

 

root@lcpc:/export/data/WebRoot/master.solr.com$ ls
admin.html  css  favicon.ico  img  js  META-INF  tpl  WEB-INF

 

 文件夹内文件列表如上,

接下来修改tomcat配置文件,添加tomcat项目存放的路径,这样便于维护。

 1.在/export/home/tomcat/domains/master.solr.com/server1/conf/Catalina/localhost增加文件ROOT.xml,docBase指向项目文件所在的文件夹
<?xml version='1.0' encoding='UTF-8'?>$                                       
<Context path="/" docBase="/export/data/WebRoot/master.solr.com">$
</Context>
 2.在/export/home/tomcat/domains/slave.solr.com/server1/conf/Catalina/localhost增加文件ROOT.xml
<?xml version='1.0' encoding='UTF-8'?>                                       
<Context path="/" docBase="/export/data/WebRoot/slave.solr.com">
</Context>
修改tomcat的http端口号码,由于在同一个机子运行两个tomcat,端口号肯定不能相同的。需要修改的/export/home/tomcat/domains/master.solr.com/server1/conf/server.xml文件
 <Server port="8000" shutdown="SHUTDOWN"> 该端口改为8000,tomcat服务的
端口号。<Connector port="9000" protocol="HTTP/1.1" 
connectionTimeout="20000" redirectPort="8443" /> 该端口改为9000
同样的修改/export/home/tomcat/domains/master.solr.com/server1/conf/server.xml文件,端口号码不能重复
<Server port="8001" shutdown="SHUTDOWN"> 该端口改为8001
<Connector port="9001" protocol="HTTP/1.1" connectionTimeout="20000" 
redirectPort="8443" /> 该端口改为9001 http端口号 
 tomcat配置全部修改完成,分别进入两个tomcat安装目录的bin文件夹,启动master tomcat
root@lcpc:/export/home/tomcat/domains/master.solr.com/server1/bin$
 ./startup.sh 
Using CATALINA_BASE:/export/home/tomcat/domains/master.solr.com/server1
Using CATALINA_HOME:/export/home/tomcat/domains/master.solr.com/server1
Using CATALINA_TMPDIR:
/export/home/tomcat/domains/master.solr.com/server1/temp
Using JRE_HOME:/opt/java/jdk1.6.0_38/jre
Using CLASSPATH:/export/home/tomcat/domains/master.solr.com/server1/bin
/bootstrap.jar
   启动slavet tomcat

 

root@lcpc:/export/home/tomcat/domains/slave.solr.com/server1/bin$ 
./startup.sh 
Using CATALINA_BASE:/export/home/tomcat/domains/slave.solr.com/server1
Using CATALINA_HOME:/export/home/tomcat/domains/slave.solr.com/server1
Using CATALINA_TMPDIR:/export/home/tomcat/domains/slave.solr.com/server
1/temp
Using JRE_HOME:/opt/java/jdk1.6.0_38/jre
Using CLASSPATH:/export/home/tomcat/domains/slave.solr.com/server1/bin
/bootstrap.jar

 

 然后在浏览器中访问127.0.0.1:9000 和127.0.0.1:9001可以看solr的主界面,使用两个不同的端口号都成功启动。

 说明tomcat没有问题,接下来就是让这两个tomcat挂在到nginx下面,然后我们通过域名访问,nginx会自动负载到各自的web应用中,接下来要做的就是修改nginx的配置文件

首先在/export/servers/nginx/nginx-1.5.0/sbin/conf下面创建一个存放nginx配置文件的domains文件夹,在domains创建两个配置文件master.solr.nginx.conf和slave.solr.nginx.conf ,还需要创建两个存放log文件的目录 /export/servers/nginx/nginx-1.5.0/sbin/logs/master.solr.com和 /export/servers/nginx/nginx-1.5.0/sbin/logs/slave.solr.com

 

#master nginx conf 
upstream tomcat_master.solr {
      server 127.0.0.1:9000  weight=10 max_fails=2 fail_timeout=30s;
    }
server          {
                listen                   80;
                server_name              master.solr.com; #项目域名
                access_log /export/servers/nginx
/nginx-1.5.0/sbin/logs/master.solr.com/master.solr.com_access.log main; #存放log文件目录
                error_log  /export/servers/nginx
/nginx-1.5.0/sbin/logs/master.solr.com/master.solr.com_error.log warn;
                error_page 411 = @my_error;
                location @my_error {
                 }
                root /export/data/WebRoot/master.solr.com;#master 项目文件的目录 
      location / {
        proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;#反向代理获取用户访问的ip地址
        proxy_pass              http://tomcat_master.solr;
        expires                 1d;
        }
        location /logs/ {
                autoindex       off;
                deny all;
        }
}
 
upstream tomcat_slave.solr {
      server 127.0.0.1:9001  weight=10 max_fails=2 fail_timeout=30s;
    }
server          {
                listen                   80;
                server_name              slave.solr.com;#项目域名 slave
                access_log               /export/servers/nginx
/nginx-1.5.0/sbin/logs/slave.solr.com/slave.solr.com_access.log main;#slave 访问log
                error_log                /export/servers/nginx
/nginx-1.5.0/sbin/logs/slave.solr.com/slave.solr.com_error.log warn;
                error_page 411 = @my_error;
                location @my_error {
                 }
                root /export/data/WebRoot/slave.solr.com;
#slave项目文件存放目录,之前已经配置过了
      location / {
        proxy_next_upstream     http_500 http_502 http_503
 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For
 $proxy_add_x_forwarded_for;
        proxy_pass              http://tomcat_slave.solr;
        expires                 1d;
        }
        location /logs/ {
                autoindex       off;
                deny all;
        }
}
   以上两个文件创建之后,修要修改nginx的总的配置文件 /export/servers/nginx/nginx-1.5.0/sbin/conf/nginx.conf
user                                    username  username; 
worker_processes                        2;
error_log                               /export/servers/nginx
/nginx-1.5.0/sbin/logs/error.log  warn; #配置nginx error log位置
pid                                     /export/servers
/nginx/nginx-1.5.0/sbin/logs/nginx.pid;
worker_rlimit_nofile                    65535;
events
{
                                        use epoll;
                                        worker_connections 65535;
#配置工作连接数
}
http
{
        include                         mime.types;
#       default_type                    text/plain;
#application/octet-stream
        default_type                    application/octet-stream;
        server_tokens                   off;
        log_format main                 '$remote_addr - 
$remote_user [$time_local] '
 '"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
        #charset                        utf-8;
        server_names_hash_bucket_size   128;
        client_header_buffer_size       32k;
        large_client_header_buffers     4 32k;
        client_max_body_size            300m;
        sendfile                        on;
        tcp_nopush                      on;
        keepalive_timeout               0;
        tcp_nodelay                     on;
        client_body_buffer_size         512k;
        fastcgi_intercept_errors        on;
        proxy_connect_timeout           90;
        proxy_read_timeout              180;
        proxy_send_timeout              180;
        proxy_buffer_size               256k;
        proxy_buffers                   4 256k;
        proxy_busy_buffers_size         256k;
        proxy_temp_file_write_size      256k;
        server_name_in_redirect         off;
        proxy_hide_header       X-Powered-By;
        error_page 400 401 402 403 404 405 408 410 412
 413 414 415 500 501 502 503 506 = 
http://www.baidu.com/search/error.html; #借用下百度的error页
include domains/*; 
#所有的配置文件都包含到nginx.conf文件中了这里面的文件就是master.solr.nginx.conf ,slave.solr.nginx.conf
        server
                {
                 listen                 80;
                 server_name            www.baidu.com;
        location / {
                 access_log             off;
                 }
        location /logs {
                 access_log             off;
                 }
        location /html {
                 access_log             off;
                 }
        }
}
 
 所有的配置都已经完成,然后用有root权限的帐号启动nginx(执行/export/servers/nginx/nginx-1.5.0/sbin/sbin下面的nginx)
root@lcpc:/export/servers/nginx/nginx-1.5.0/sbin/sbin# ./nginx 
 
 修改host文件,增加下面两行host

 

vim /etc/hosts
127.0.0.1 master.solr.com
127.0.0.1 slave.solr.com

 

 打开浏览器访问master.solr.com 和slave.solr.com现实solr管理页

 

访问不同的域名,nginx自动去访问了相应的项目,打开/export/servers/nginx

/nginx-1.5.0/sbin/logs/master.solr.com/master.solr.com_access.log 可以看到

刚刚的访问log

 

127.0.0.1 - - [29/Jun/2013:00:33:15 +0800] "GET /null/admin/system?wt=
json HTTP/1.1" 404 1142 "http://127.0.0.1/" "Mozilla/5.0 (X11; Ubuntu;
 Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" server_names_hash_
bucket_size128
127.0.0.1 - - [29/Jun/2013:00:35:38 +0800] "GET /null/admin/syste
m?wt=json HTTP/1.1" 404 1142 "http://master.solr.com/" "Mozilla/5.0
 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" s
erver_names_hash_bucket_size128
127.0.0.1 - - [29/Jun/2013:00:36:10 +0800] "GET /null/admin/syste
m?wt=json HTTP/1.1" 404 1142 "http://master.solr.com/" "Mozilla/5.
0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" 
server_names_hash_bucket_size128

 

 打开/export/servers/nginx/nginx-1.5.0/sbin/logs/slave.solr.com/slave.solr.com_access.log

 

127.0.0.1 - - [29/Jun/2013:00:29:07 +0800] "GET /null/admin/system?wt=
json HTTP/1.1" 404 1142 "http://slave.solr.com/" "Mozilla/5.0 (X11; Ub
untu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" server_names_ha
sh_bucket_size128
127.0.0.1 - - [29/Jun/2013:00:29:07 +0800] "GET /img/ico/construction.p
ng HTTP/1.1" 200 861 "http://slave.solr.com/css/styles/common.css" "Mo
zilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/1
7.0" server_names_hash_bucket_size128
127.0.0.1 - - [29/Jun/2013:00:29:07 +0800] "GET /img/favicon.ico HTTP/
1.1" 200 1454 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Geck
o/20100101 Firefox/17.0" server_names_hash_bucket_size128
127.0.0.1 - - [29/Jun/2013:00:38:37 +0800] "GET /null/admin/system?wt=j
son HTTP/1.1" 404 1142 "http://slave.solr.com/" "Mozilla/5.0 (X11; Ubu
ntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0" server_names_ha
sh_bucket_size128

 

 

 总结:1.安装nginx

            2.安装tomcat 配置项目文件路径

            3.配置项目nginx upstream ,配置nginx总的配置文件

            4.修改host文件用于测试

 

分享到:
评论

相关推荐

    基于SSM框架的Java电商项目

    solr EasyUI UEditor JQuery Freemark activMQ httpClient MySQL FastDFS ... 开发环境 InteliJ IDEA Maven Tomcat7 JDK Nginx Git postman sqlyog win7 ... 计划 技术架构 (集群和分布式架构的区别) 工程搭建 ...

    基于SSM框架的Java电商项目.zip

    solr EasyUI UEditor JQuery Freemark activMQ httpClient MySQL FastDFS ... 开发环境 InteliJ IDEA Maven Tomcat7 JDK Nginx Git postman sqlyog win7 ... 计划 技术架构 (集群和分布式架构的区别) 工程搭建 ...

    Java简历模板,经典,有参考价值.docx

    * 大润发网上商城(飞牛网):开发环境为 Windows+Eclipse+Mysql+JDK1.7+Tomcat+ftp,软件架构为 SpringMVC+Spring+Mybatis+dubbo+zookeeper+Solr+Maven+Git+Nginx+Tomcat7.0+Mysql+Mongodb+shiro。 * 银豆网贷系统...

    Java开发工程师简历模板(三十八)

    - **急速购网上商城**:张三在这个项目中负责了多个关键模块的开发,包括商品搜索、管理、内容管理等,使用了Dubbo和Zookeeper进行服务治理,以及Nginx、Solr、Redis等提升系统性能和可扩展性。 - **联昊通物流...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 06.ssm框架整合思路.avi │ 07.ssm框架整合.avi │ 08.测试工程.avi │ 打开必读.txt │ 淘淘商城第一天笔记.docx │ ├─02.第二天 │ 07.商品类目选择完成.avi │ 01.课程计划.avi │ 02.展示首页.avi │ 03....

    JavaEE求职简历-姓名-JAVA开发工程师-范文.doc

    9. **操作系统与服务**:熟悉Linux操作系统,能够在Linux上部署Redis、Nginx、MySQL、Tomcat等服务。 10. **安全与性能优化**:掌握Shiro进行权限控制,熟练运用Redis进行缓存并配置集群,了解Nginx的反向代理和...

    王凯某求职简历_20201129154431_嵌入式_java简历_程序员简历模板_计算机相关专业.doc

    20. Tomcat服务器:熟悉Tomcat服务器,实现高性能的web服务器管理。 通过这份求职简历,我们可以看到王凯某具备了丰富的IT技术知识和实践经验,对JAVA、Web开发、数据库、项目管理等领域有着深入的了解和掌握。

    生产实习报告_李响1151

    Vsftpd作为图片服务器,Tomcat作为Web服务器,Maven进行项目构建和依赖管理,Git进行版本控制。 8. **系统功能与实现**:实习任务包括基础功能如用户注册、登录、商品浏览、下单等,以及附加功能如权限管理、订单...

    基于SSM框架的Java电商项目源码+数据库+项目说明.zip

    5. solr 6. EasyUI 7. UEditor 8. JQuery 9. Freemark 10. activMQ 11. httpClient 12. MySQL 13. FastDFS 14. ... # 开发环境 1. InteliJ IDEA 2. Maven 3. Tomcat7 4. JDK 5. Nginx 6. Git 7. postman 8. sqlyog...

    某公司研发及运维自动化技术体系课件.pptx

    - **雷达实时日志系统**:实时监控Nginx、Tomcat和BI的日志。 - **雨燕分布式开发框架**:提供统一的分布式通信机制。 - **闪电配置分发系统**:支持配置项管理和集群服务发现。 **依赖的开源技术栈** - 使用Java、...

    java视频 黑马 27期

    xml和Tomcat JavaWeb的核心技术 JDBC加强及案例 JDBC案例 AJAX及JQuery的AJAX Listener与Filter 基础加强 JavaWeb综合项目实战 Linux Nginx集群搭建 oracle hibernate struts spring ssh练习 maven 商务综合管理平台...

    drupal_ansible_vagrant:包含用于 drupal env 的 vagrant box 和 ansible 配置脚本

    gem 去做修复给定用户的 gems 安装可配置的 solr 配置同步nginx Xhprof PHPCS & CSSlist & JSlint Behat 与 silenium 视窗整合性能改进启用交换一切都在记忆中还有什么? 监控一切(日志、性能、内存使用等) 安装将...

    淘淘商城01

    淘淘商城选择了MySQL作为数据库,MyBatis作为DAO层,Druid作为数据库连接池,Redis作为缓存,Solr作为搜索引擎,FastDFS作为分布式文件系统,Nginx作为反向代理服务器,Quartz作为定时任务框架,Tomcat作为Web服务器...

    电商项目-基于SSM框架的Java电商项目实战

    8. **开发工具与环境**:使用IntelliJ IDEA作为开发IDE,Maven进行依赖管理和构建,Tomcat7作为应用服务器,JDK为运行环境,Nginx作为反向代理和负载均衡服务器,提升系统的稳定性和性能。 通过这个实战项目,你将...

    基于SpringBoot+Vue的宠物健康咨询系统.zip

    在开发过程中,利用JUnit进行单元测试,Elasticsearch或Solr进行全文检索,提升搜索效率,Nginx作为反向代理和负载均衡服务器。 总的来说,这个项目覆盖了现代Web开发的多个重要技术栈,对于学习者来说,不仅可以...

    基于ssm+mysql的分布式电商系统(前后台+订单管理+门户)源码+项目说明.zip

    FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库...

    Java方向应届生优秀简历模板

    其中一个项目是优品购大型在线商城系统,该项目采用了SpringCloud等现代微服务架构,整合了MySQL、Redis、Solr等技术,实现了分布式文件系统、全文检索、消息队列、单点登录、静态化页面等功能,充分展示了求职者在...

    JavaEE求职简历-姓名-JAVA开发工程师.doc

    他对Tomcat和Nginx服务器的配置和使用也有一定经验。 在项目经验部分,【姓名】参与了承德网农科技有限公司的惠生活App服务器端开发,负责搜索、充值、活动、抽奖、优惠券和消息模块。项目采用SpringBoot+JPA作为...

    NSTL云计算服务平台集成项目.doc

    现在,NSTL需要支持包括Oracle、MySQL、TRIP检索和索引、Solr检索和索引、Neo4j、Tomcat、Nginx、各种Web服务器以及前端测试案例等多种复杂的环境搭建,这超出了现有的资源能力。 2. **平台架构建议**: - **平台...

Global site tag (gtag.js) - Google Analytics