Nginx+Tomcat动静分离及Nginx优化
目的:nginx处理用户请求的静态页面,tomcat处理用户请求jsp页面,来实现动态分离,nginx处理静态页面效率远高于tomcat,这样一来就能更好的提高并发,处理性能。
准备软件:
下载jdk1.7:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
下载tomcat8.0:http://tomcat.apache.org/download-80.cgi
下载nginx1.4.4:http://nginx.org/en/download.html
1、JDK配置
1
2
3
4
5
6
7
8
9
10
|
[root@localhost ~] # tar zxvf jdk-7u45-linux-x64.tar.gz [root@localhost ~] # mv jdk1.7.0_45/ /usr/local/jdk [root@localhost ~] # vi /etc/profile JAVA_HOME= /usr/local/jdk PATH=$PATH:$JAVA_HOME /bin CLASSPATH=.:$JAVA_HOME /lib :$JAVA_HOME /jre/lib export JAVA_HOME PATHCLASSPATH [root@localhost ~] # source /etc/profile [root@localhost ~] # java -version #显示版本说明成功 java version "1.7.0_45" |
2、Tomcat配置
1
2
|
[root@localhost ~] # tar zxvf apache-tomcat-8.0.0-RC5.tar.gz [root@localhost ~] # mv apache-tomcat-8.0.0-RC5 /usr/local/tomcat |
#默认tomcat是root身份运行的,这样不安全,我们设置来用普通用户
1
2
3
4
5
6
|
[root@localhost ~] # groupadd tomcat [root@localhost ~] # useradd -g tomcat tomcat [root@localhost ~] # passwd tomcat [root@localhost ~] # chown tomcat.tomcat -R /usr/local/tomcat [root@localhost ~] # su - tomcat /usr/local/tomcat/bin/startup.sh [root@localhost ~] # echo 'su - tomcat -c "tomcat /usr/local/tomcat/bin/startup.sh"' >> /etc/rc.local #开机启动 |
3、Nginx安装配置
1
2
3
4
5
6
7
|
[root@localhost ~] # groupadd nginx [root@localhost ~] # useradd -g nginx -s /sbin/nologin nginx [root@localhost ~] # yum install –y make zlib-devel openssl-devel pcre-devel [root@localhost ~] # tar zxvf nginx-1.4.4.tar.gz [root@localhost ~] # cd nginx-1.4.4 [root@localhost nginx-1.4.4] # ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module [root@localhost nginx-1.4.4] # make && make install |
#主配置文件配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
[root@localhost ~] # vi /usr/local/nginx/conf/nginx.conf user nginx; worker_processes 1; error_log logs /error .log; pid logs /nginx .pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application /octet-stream ; #日志格式定义 log_format main '$remote_addr - $remote_user[$time_local] "$request" ' '$status $body_bytes_sent"$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; access_log logs /access .log main; sendfile on; keepalive_timeout 65; #gzip压缩功能设置 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-javascripttext/css application /xml ; gzip_vary on; server { listen 80; server_name www. test .com; location / { #jsp网站程序根目录,一般nginx与tomcat在同一个目录 root /usr/local/tomcat/webapps/ROOT ; index index.html index.jsp index.html; } location ~ .*.jsp$ { index index.jsp; proxy_pass http: //127 .0.0.1:8080; #来自jsp请求交给tomcat处理 proxy_redirect off; proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP 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; #nginx跟后端服务器连接超时时间 proxy_read_timeout 90; #连接成功后,后端服务器响应时间 proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 } location ~ .*\.(gif|jpg|png|bmp|swf)$ #由nginx处理静态页面 { expires 30d; #使用expires缓存模块,缓存到客户端30天 } location ~ .*\.(jsp|js|css)?$ { expires 1d; } error_page 404 /404 .html; #错误页面 error_page 500 502 503 504 /50x .html; location = /50x .html { root html; } } } |