码迷,mamicode.com
首页 > 其他好文 > 详细

nginx+tomcat实现动静分离

时间:2018-12-26 16:53:53      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:name   request   Fix   expires   err   pen   default   成功   efi   

安装nginx 所需要的环境

yum install -y gcc-c++

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

安装 wget 方便下载:yum install –y wget

下载nginx

wget http://nginx.org/download/nginx-1.14.2.tar.gz

安装 nginx

tar zxvf nginx-1.14.2.tar.gz

cd nginx-1.14.2

./configure - -prefix=/usr/local/nginx – -with-http_stub_status_module – -with-http_ssl_module

make&&make install

配置nginx.conf (配置文件在文章最后)

安装 配置 tomcat

先安装jdk

下载:wget http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.rpm

安装:rpm -ivh jdk-7u3-linux-x64.rpm

在/etc/profile里设置环境变量:

JAVA_HOME= /usr/java/jdk1.7.0_80

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH CLASSPATH JAVA_HOME

然后在source /etc/profile使这个改变生效

安装tomcat

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

tar zxvf apache-tomcat-8.5.37.tar.gz

cp -R apache-tomcat-8.5.37 /usr/local/tomcat

启动tomcat

/usr/local/tomcat/bin/startup.sh

下面我们来修改tomcat的首页

我在$tomcat/webapps/下建了个html目录作为我网站的默认目录,在html中有一个index.html文件,该文件要作为我网站的默认主页。

首先,修改$tomcat/conf/server.xml文件。在server.xml文件中,有一段如下:

……

<engine name=”Catalina” defaultHost=”localhost”>

<host name=”localhost” appBase=”webapps”

unpackWARs=”true” autoDeploy=”true”

xmlValidation=”false” xmlNamespaceAware=”false”>

……

<host>

</engine>

……

在<host></host>标签之间添加上:

<Context path=”" docBase=”html” debug=”0″ reloadable=”true” />

技术分享图片
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;

docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个html目录,让该目录作为我的默认目录。
debug和reloadable一般都分别设置成0和true。

然后,修改$tomcat/conf/web.xml文件。
在web.xml文件中,有一段如下:

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

在<welcome-file-list>与<welcome-file>index.html</welcome-file>之间添加上:

<welcome-file>html</welcome-file>

技术分享图片
修改完成之后,重启tomcat即可看到index.html里的内容

至此动静分离就安装成功了。

在/usr/local/tomcat/webapps/html建立名为index.jsp动态页面:

<%@ page language=”java” contentType=”text/html; charset= UTF-8″

pageEncoding=”UTF-8″%>

<HTML>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8 “>

<title>Nginx动静分离测试</title>

</head>

<body>

<h1>您正在访问:10.4.0.41 </h1>

<img src=”/img/girl.jpg” alt=”女孩” />

</body>

</html>

添加一个图片标签,加载在Tomcat根目录下 /webapps/html/img/girl.jpg图片文件。启动Tomcat测试是否能够访问。

带上8080 端口图片可以加载出来
技术分享图片

不加端口图片没有加载出来 但是JSP页面能访问到

技术分享图片

这是因为静态资源访问请求已经被Nginx拦截,

由Nginx进行处理。但是Nginx服务器的/usr/local/nginx/html/img 目录下并没有图片资源,所以图片没有加载出来。index.jsp页面能够显示,说明动态的请求已经转发到了Tomcat,Tomcat对index.jsp进行了解析。

将tomcat上/webapps/html/img整个目录拷贝到 Nginx服务器 /usr/local/nginx/html/img目录下放置图片文件。

最后没有端口号的情况下图片可以加载出来。

技术分享图片

Nginx.conf 配置文件 如下:

worker_processes 8;

error_log /usr/local/nginx/logs/nginx_error.log crit;

pid /usr/local/nginx/nginx.pid;

worker_rlimit_nofile 65535;

events

{

use epoll;

worker_connections 65535;

}

http

{

include mime.types;

default_type application/octet-stream;

#charset gb2312;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 8m;

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;

server

{

listen 80;

server_name 148.70.13.215; ####test1.dl.com 的 ip 为 148.70.13.215

index index.html index.htm index.php;

root /usr/local/nginx/html;

#limit_conn crawler 20;

location ~ .*.(php|php5)?$

{#fastcgi_pass unix:/tmp/php-cgi.sock;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ ###所以的静态文件人gif、jpg>等都在本地打开,存放的目录为/usr/local/nginx/html,保存时间为30天

{

root /usr/local/nginx/html;

expires 30d;

}

location ~ (.jsp)|(.do)$

{

proxy_pass http://148.70.13.215: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_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;

}

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/access.log access;

}

server

{

listen 80;

server_name status.test1.dl.com;

location / {

stub_status on;

access_log off;

}

}

}

nginx+tomcat实现动静分离

标签:name   request   Fix   expires   err   pen   default   成功   efi   

原文地址:http://blog.51cto.com/python20101030/2335469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!