安装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文件中,有一段如下:

……

unpackWARs=”true” autoDeploy=”true”

xmlValidation=”false” xmlNamespaceAware=”false”>

……

……

标签之间添加上:

nginx+tomcat实现动静分离_第1张图片
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;

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

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

index.html

index.htm

index.jsp

index.html之间添加上:

html

nginx+tomcat实现动静分离_第2张图片
修改完成之后,重启tomcat即可看到index.html里的内容

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

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

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

pageEncoding=”UTF-8″%>

Nginx动静分离测试

您正在访问:10.4.0.41

”女孩”

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

带上8080 端口图片可以加载出来
nginx+tomcat实现动静分离_第3张图片

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

nginx+tomcat实现动静分离_第4张图片

这是因为静态资源访问请求已经被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+tomcat实现动静分离_第5张图片

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;

}

}

}