Java SpringMVC使用nginx和WildFly实现动静分离
1. 运行环境SUSE Linux Enterprise Server 12 SP1nginx-1.11.2WildFly10.0java version 1.8.0_121开发的Web项目用到spring-mvc2. 如何安装略,重点是部署的注意事项 要实现动静分离,即把静态的部分交给nginx返回,动态的部分交给WildFly执行。把eclipse打包的wa
·
1. 运行环境
SUSE Linux Enterprise Server 12 SP1
nginx-1.11.2
WildFly10.0
java version 1.8.0_121
开发的Web项目用到spring-mvc
2. 如何安装略,重点是部署的注意事项
要实现动静分离,即把静态的部分交给nginx返回,动态的部分交给WildFly执行。
把eclipse打包的war项目部署在两个地方,一个地方是nginx访问的部分,另一部分是
WildFly10.0动态执行的部分,这部分按原来的方式部署,不变。由于项目使用到springmvc,
MVC无后缀,故而把这部分路径配置到nginx.conf的最后,即前面部分都没有匹配到,就跳
转到WildFly10.0后台处理。如我的Web项目打名后名为MyWeb.war,将MyWeb.war项目部署到
WildFly10.0的部署目录下,再将MyWeb.war用rar软件解压,将MyWeb目录旋转到nginx指定的
位置。
3. nginx配置文件说明
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
charset utf-8;
#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;
upstream jboss_web_server{
server localhost:8080 weight=10;#localhost:8080为WildFly10.0配置的站点
}
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
index index.jsp index.htm index.php;
root /data/nginx_web; #nginx访问的静态资源部分放于此处,全路径为/data/nginx_web/MyWeb
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
default_type 'text/html';
charset utf-8;
#以下后缀类型的资源访问转向WildFly后台处理
location ~ .*\.(jsp|jspx|do|wsdl)?$
{
proxy_pass http://jboss_web_server;
}
#静态资源访问由nginx直接返回,无需跳转到后端
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|apk|tar.gz)$
{
expires 30d;
root /data/nginx_web;
}
#静态资源访问由nginx直接返回,无需跳转到后端
location ~ .*\.(js|css)?$
{
expires 12d;
root /data/nginx_web;
}
#spring-mvc调用跳转到后端处理,即前面都没有匹配上的内容跳转到后台,
#这一句不能放到最前面,放到前面会把所有访问都跳到后台了。
location /
{
charset GBK;
proxy_pass http://jboss_web_server;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
SUSE Linux Enterprise Server 12 SP1
nginx-1.11.2
WildFly10.0
java version 1.8.0_121
开发的Web项目用到spring-mvc
2. 如何安装略,重点是部署的注意事项
要实现动静分离,即把静态的部分交给nginx返回,动态的部分交给WildFly执行。
把eclipse打包的war项目部署在两个地方,一个地方是nginx访问的部分,另一部分是
WildFly10.0动态执行的部分,这部分按原来的方式部署,不变。由于项目使用到springmvc,
MVC无后缀,故而把这部分路径配置到nginx.conf的最后,即前面部分都没有匹配到,就跳
转到WildFly10.0后台处理。如我的Web项目打名后名为MyWeb.war,将MyWeb.war项目部署到
WildFly10.0的部署目录下,再将MyWeb.war用rar软件解压,将MyWeb目录旋转到nginx指定的
位置。
3. nginx配置文件说明
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
charset utf-8;
#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;
upstream jboss_web_server{
server localhost:8080 weight=10;#localhost:8080为WildFly10.0配置的站点
}
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
index index.jsp index.htm index.php;
root /data/nginx_web; #nginx访问的静态资源部分放于此处,全路径为/data/nginx_web/MyWeb
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
default_type 'text/html';
charset utf-8;
#以下后缀类型的资源访问转向WildFly后台处理
location ~ .*\.(jsp|jspx|do|wsdl)?$
{
proxy_pass http://jboss_web_server;
}
#静态资源访问由nginx直接返回,无需跳转到后端
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|apk|tar.gz)$
{
expires 30d;
root /data/nginx_web;
}
#静态资源访问由nginx直接返回,无需跳转到后端
location ~ .*\.(js|css)?$
{
expires 12d;
root /data/nginx_web;
}
#spring-mvc调用跳转到后端处理,即前面都没有匹配上的内容跳转到后台,
#这一句不能放到最前面,放到前面会把所有访问都跳到后台了。
location /
{
charset GBK;
proxy_pass http://jboss_web_server;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
更多推荐
已为社区贡献2条内容
所有评论(0)