centos nginx和tomcat集群

nginx版本无所谓了,稳定版就行,jdk为1.8(jdk8),tomcat为1.7(tomcat7)

nginx安装流程:

第一步:查看linux里是否存在nginx,存在 卸载

查看:rpm -qa | grep nginx

卸载:rpm -e --nodeps 查找出来的文件名

第二步:安装nginx的环境依赖

yum install pcre-devel zlib-devel openssl-devel

第三步:下载文件并解压

建立下载文件的文件夹:$ mkdir /java/download

进入文件夹:$ cd /java/download

下载文件:$ wget http://nginx.org/download/nginx-1.10.3.tar.gz

解压文件:$ tar -zxvf nginx-1.10.3.tar.gz

第四步:安装nginx

进入文件:$ cd nginx-1.10.3

新建安装文件夹:$ mkdir /java/nginx

编译:$ ./configure  --prefix=/java/nginx --with-http_stub_status_module --with-http_ssl_module

安装测试于安装:$ make && make install

执行无误来到这一步,你的nginx已经能够正常工作,通过打开浏览器可以进行访问,nginx默认端口号是80,在浏览器的地址栏输入ip地址就可看到nginx的成功页面

进入nginx的启动目录:

$ cd /java/nginx/sbin

进行启动,停止,重启nginx的操作:

./nginx

$./nginx -s stop

$./nginx -s quit

$./nginx -s reload 

第五步:配置开机自启(因为什么呢)

如果你的机子上有很多的服务,突然间服务器给你down了一下,你是不是得一个一个去找然后还得琢磨一下怎么开启,所以在服务器里安装软件应该要方便操作者,不然烦都烦死了

有的时候linux就是这样只需要照着别人的成功文档出来自己想要的东西就行

在rc.local文件里增加一行代码:

$ vim /etc/rc.local

/java/nginx/sbin/nginx 

重新分配权限:

$ chmod 755 /etc/rc.local

完成,至于问什么不弄脚本启动等操作呢,我也想弄,但是没弄好,就不弄了。

tomcat安装流程:

要装tomcat先装jdk,要装jdk先卸载土著jdk,因为jdk给了tomcat一个java环境,能让tomcat愉快的玩耍

查看系统中是否有jdk:

$ rpm -qa | grep jdk

存在就卸了它:

$ rpm -e --nodeps 查找出来的文件名

我已经私自做主将jdk和tomcat都下载好并解压到我的网盘下,省略了进入oracle官网的一堆神奇操作

文件地址:https://pan.baidu.com/s/1bvnxjIO9RtgAE4j6nUiK5w

将文件上传到服务器上,并放置到/java目录(习惯性一个环境所需的软件归置到同一个文件夹)

第一步:其实这jdk和tomcat吧,解压完就相当于安装了

此时jdk和tomcat的文件路径:

/java/jdk8

/java/tomact7

第二步:配置环境变量:

jdk的环境变量

$ vim /etc/profile

#jdk(注释是个好习惯,不然别人不清楚这是个啥)

export JAVA_HOME=/java/jdk8

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

为啥配了这一堆,我哪里知道,别人这么配的然后我用着不错,你说每天那么忙,你都没时间打游戏,还管那么多干嘛

按理说jdk环境变量都配置完了给自己庆祝下呗,jdk有个坑比问题之前可是折磨过我,你想通过java -version查看自己安装的jdk信息的时候给你报了个“bash:cannot restore segment prot after reloc: Permission denied     大致say的是->哼,小样,早着呢”

我代表星星消灭你!->解决问题:

第一步:在root用户下,修改/etc/selinux/config 文件,把SELINUX=enforcing 改成 SELINUX=disabled

第二步:进入jdk文件夹在bin下chmod 777 java

$java -version

查看不到,直接万能的重启

$reboot

查看得到,就别理它了,她又不能跟你去喝奶茶

tomcat的环境变量,这里是为了集群做准备(...手牵手一步两步三步四步往前走,看tomcat一个两个三个四个连成线)

进入tomcat所在文件夹

$cd /java

将存在的tomcat7复制一份改名tomcat7-2

$ cp -r tomcat7 tomcat7-2

这是存在两台tomcat

#tomcat两台需要各自声明自己的环境变量
##########first tomcat###########
CATALINA_BASE=/java/tomcat7
CATALINA_HOME=/java/tomcat7
TOMCAT_HOME=/java/tomcat7
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########second tomcat##########
CATALINA_2_BASE=/java/tomcat7-2
CATALINA_2_HOME=/java/tomcat7-2
TOMCAT_2_HOME=/java/tomcat7-2
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME

为啥配了这一堆,我哪里知道,别人这么配的然后我用着不错,你说你每天那么忙,都没时间打游戏,还管那么多干嘛

 可以启动了吗,第一台tomcat可以启动了,但是第二台将server.xml里的三个端口+1与第一台不一样就行

这个端口是供外网访问的,存在端口开放问题,确保端口可以访问,我的是阿里服务器,直接去官网安全组规则配置的8081端口(两步就解决了,第一进入服务器管理页;第二更多里面找到安全组规则克隆端口修改成自己要的端口。完成)

访问吧,可以访问成功,恭喜你成功晋级下一关卡:

配置nginx支持tomcat

到这里主要的还是思想,搞清楚逻辑可能一下子就能做到自己想要的效果,所以查看别人的文档的时候,首先自己想清楚想要做到什么样子、

关于nginx和tomcat的动静分离,因为我并不是搞java的,所以理解上根本不是那么一回事,不可避免的在思想上走了很多的弯路,其实很简单,动静分离主要是看动在哪里,静在哪里,我们整合nginx和tomcat主要的配置还是在nginx上,只要tomcat是可以访问的,nginx也是可以访问的,就可以在nginx.conf上将其整合。

具体步骤:

第一步:修改nginx.conf的配置

$ vim /java/nginx/conf/nginx.conf

红色字体为添加的:

#user nobody;
worker_processes 1;

events {
  worker_connections 1024;
}

http {
  include mime.types;
  default_type application/octet-stream;

  sendfile on;

  keepalive_timeout 65;

###<这里是重定向访问的服务,通过nginx的访问,直接获取tomcat的内容

  upstream test{
    server 120.78.207.226:8080;
  }

###>

  server {
    listen 80;
    server_name localhost;

    #动态文件处理

###<这里是进行加载tomcat的设置,tomcat支持nginx配置这两处就行

    #动态加载 这是tomcatde location

    location / {
      proxy_next_upstream http_502 http_504 error timeout invalid_header;
      proxy_pass http://test;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
    #静态文件处理 这是nginx的location   root是项目路径
    location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
    {
      root /java/tomcat7/webapps/ROOT/projeck;
      expires 30d;
    }
    #静态文件处理 这是nginx的location

    location ~ .*\.(js|css)?$
    {
       root /java/tomcat7/webapps/ROOT/projeck;
      expires 1h;
    }

###>

    location = /50x.html {
      root html;
    }

  }

}

静态文件加载目录定义在这里可以进行访问得到,但是动态文件目录放在这里是没有意义的,直接不能解析,所以动态文件的加载目录是在tomcat的server.xml里,只需要增加一行代码放在</host>标签前面

:wq! 保存退出

第二步:修改server.xml

tomcat7:

$ vim /java/tomcat7/conf/server.xml

<Context path="" docBase="/java/tomcat7/webapps/ROOT/projeck" reloadable="true" />

tomcat7-2:

$ vim /java/tomcat7-2/conf/server.xml

<Context path="" docBase="/java/tomcat7-2/webapps/ROOT/projeck" reloadable="true" />

你也可以将项目用jar解压到一个指定文件下然后将这两处修改成指定的路径,OK的

我这里是将动态静态都放在同一个文件目录下面,但是它们工作的原理还是nginx加载静态的,tomcat加载动态的,你可以进行测试,将这两个文件的其中一个的配置路径修改到其他目录,肯定访问的文件缺少修改后的内容。看了一堆的文档然后理一堆的代码远不如一开始就明明白白,纯个人理解,仅供参考

posted @ 2018-05-17 11:17  边牧不是狗  阅读(224)  评论(0编辑  收藏  举报