nginx+tomcat整合(实现网站动静分离)

nginx+tomcat整合(实现网站动静分离)

1.在服务器192.168.231.128上部署tomcat8.5.20+jdk1.8

[root@localhost ~]# mkdir /tomcat

上传tomcat包和jdk包

[root@localhost ~]# cd /tomcat/

[root@localhost tomcat]# ls

apache-tomcat-8.5.20.tar.gz  jdk-8u65-linux-x64.gz

1)安装tomcat的环境jdk

[root@localhost tomcat]# tar -zxf jdk-8u65-linux-x64.gz

[root@localhost tomcat]# ls

apache-tomcat-8.5.20.tar.gz  jdk1.8.0_65  jdk-8u65-linux-x64.gz

[root@localhost tomcat]# mv jdk1.8.0_65/ /usr/local/jdk

[root@localhost tomcat]# ls /usr/local/jdk/

bin        db       javafx-src.zip  lib      man          release  THIRDPARTYLICENSEREADME-JAVAFX.txt

COPYRIGHT  include  jre             LICENSE  README.html  src.zip  THIRDPARTYLICENSEREADME.txt

2)给jdk添加指定的环境变量,在/etc/profile最后面添加环境变量值

(此处是添加的全局环境变量,也可只添加到tomcat启动脚本catalina.sh中,不添加到全局变量中)

[root@localhost tomcat]# vim /etc/profile

最下面添加,如下:

export JAVA_HOME=/usr/local/jdk              //JAVA_HOME值就是jdk的安装目录,set是设置

export JAVA_HOME                             //export是把JAVA_HOME变量变成全局变量

export PATH=$JAVA_HOME/bin:$PATH             //设置PATH路径,

export PATH //把PATH变量变成全局变量

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  //最前面的点表示当前,变量路径之间用:隔开

export CLASSPATH

wq

[root@localhost tomcat]# source /etc/profile

设置jdk环境变量注意事项:

1)JAVA_HOME的值应为jdk安装目录

2)$PATH、$CLASSPATH、$JAVA_HOME 是用来引用原来的环境变量的值在设置环境变量时特别要注意不能把原来的值给覆盖掉了。

3)linux下用冒号”:”来分隔路径

4)大小写必须严格区分。

[root@localhost tomcat]# java -version               #查看jdk安装的版本

java version "1.8.0_65"

Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

3)安装绿色tomcat服务:

[root@localhost tomcat]# tar -zxf apache-tomcat-8.5.20.tar.gz

[root@localhost tomcat]# ls

apache-tomcat-8.5.20  apache-tomcat-8.5.20.tar.gz  jdk-8u65-linux-x64.gz

[root@localhost tomcat]# mv apache-tomcat-8.5.20 /usr/local/tomcat

[root@localhost tomcat]# ls /usr/local/tomcat/

bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

[root@localhost tomcat]# ls /usr/local/tomcat/conf/

catalina.policy      context.xml           jaspic-providers.xsd  server.xml        tomcat-users.xsd

catalina.properties  jaspic-providers.xml  logging.properties    tomcat-users.xml  web.xml

[root@localhost tomcat]# ls /usr/local/tomcat/bin/

bootstrap.jar       commons-daemon.jar            daemon.sh         setclasspath.sh  startup.sh            tool-wrapper.sh

catalina.bat        commons-daemon-native.tar.gz  digest.bat        shutdown.bat     tomcat-juli.jar       version.bat

catalina.sh         configtest.bat                digest.sh         shutdown.sh      tomcat-native.tar.gz  version.sh

catalina-tasks.xml  configtest.sh                 setclasspath.bat  startup.bat      tool-wrapper.bat

[root@localhost tomcat]# /usr/local/tomcat/bin/startup.sh   #启动tomcat服务方式1

[root@localhost tomcat]# netstat -anptu |grep 8080

tcp        0      0 :::8080                     :::*                        LISTEN      1523/java           

tcp        0      0 ::ffff:192.168.40.140:8080  ::ffff:192.168.40.1:55121   ESTABLISHED 1523/java  

[root@localhost tomcat]# ps -ef |grep tomcat

有进程

[root@localhost tomcat]# /usr/local/tomcat/bin/shutdown.sh  #关闭tomcat服务方式1

[root@localhost tomcat]# netstat -anptu |grep 8080

tcp        0      0 ::ffff:192.168.40.140:8080  ::ffff:192.168.40.1:55121   TIME_WAIT   -                   

tcp        0      0 ::1:8080                    ::1:54621                   TIME_WAIT   -   

[root@localhost tomcat]# ps -ef |grep tomcat

无进程

[root@localhost tomcat]# /usr/local/tomcat/bin/catalina.sh start  #启动tomcat服务方式2

[root@localhost tomcat]# netstat -anptu |grep 8080

tcp        0      0 :::8080                     :::*                        LISTEN      1598/java

[root@localhost tomcat]# ps -ef |grep tomcat

有进程

[root@localhost tomcat]# cd

浏览器访问tomcat网站:http://192.168.231.128:8080/ ,如下:

2.在服务器192.168.231.128上安装nginx:

[root@localhost ~]# yum -y install gcc gcc-c++

[root@localhost ~]# yum -y install openssl-devel openssl zlib zlib-devel pcre pcre-devel

[root@localhost ~]# mkdir /nginx

[root@localhost ~]# cd /nginx/

[root@localhost nginx]# ls

nginx-1.6.2.tar.gz

[root@localhost nginx]# tar -zxf nginx-1.6.2.tar.gz

[root@localhost nginx]# ls

nginx-1.6.2  nginx-1.6.2.tar.gz

[root@localhost nginx]# cd nginx-1.6.2

[root@localhost nginx-1.6.2]# ls

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

[root@localhost nginx-1.6.2]# useradd -s /sbin/nologin -M nginx

[root@localhost nginx-1.6.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

[root@localhost nginx-1.6.2]# make && make install

[root@localhost nginx-1.6.2]# /usr/local/nginx/sbin/nginx

[root@localhost nginx-1.6.2]# netstat -anptu |grep 80

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      17631/nginx         

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      15288/java          

tcp        0      0 :::8009                     :::*                        LISTEN      15288/java          

tcp        0      0 :::8080                     :::*                        LISTEN      15288/java          

浏览器访问nginx,如下:http://192.168.231.128/ 

3.接下来就进入本文的主题,将Nginx和Tomcat整合在一起使用实现动静分离这部分工作其实也就是修改nginx.conf里的配置,动态JSP页面请求交给Tomcat处理对于静态文件的请求,我们也新建一个location,将常见图片、css、js等请求匹配到该location中,实现动静分离。动静分离就是:我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。

[root@localhost nginx-1.6.2]# vim /usr/local/nginx/conf/nginx.conf

……

user  root;

server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html; 

            index  index.html index.htm;

        }

        location ~ \.jsp$ {        #jsp直接给tomcat处理

            index index.jsp;

            proxy_pass http://localhost:8080;   #最主要是这项,其他没有都行

            proxy_redirect off;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            client_max_body_size 10m;

            client_body_buffer_size 128k;

            proxy_connect_timeout 90;

            proxy_read_timeout 90;

            proxy_buffer_size 4k;

            proxy_buffers 6 32k;

            proxy_busy_buffers_size 64k;

            proxy_temp_file_write_size 64k;

        }

        location ~ \.(html|js|css|gif|jpg|png|bmp|swf)$ {  #这些图片静态的,直接给nginx进行缓存

            expires 30d;

            root /usr/local/tomcat/webapps/ROOT; #此处为静态文件路径,也可不设,默认html,根据需要是否动静分开

        }

        location ~ \.(js|css)$ {  #这些程序文件静态的,直接给nginx进行缓存,缓存时间短

            expires 1h;

            root /usr/local/tomcat/webapps/ROOT; #此处为静态文件路径,也可不设,默认html,根据需要是否动静分开

        }

……

}

注意:

#root /usr/local/tomcat/webapps/ROOT; 此处为静态文件路径,也可不设,默认是html,即nginx的站点目录,根据需要设置.

[root@localhost nginx-1.6.2]# echo 111 > /usr/local/tomcat/webapps/ROOT/a.html

[root@localhost nginx-1.6.2]# /usr/local/nginx/sbin/nginx -s reload

浏览器访问静态页面:

浏览器访问动态页面:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维实战帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值