nginx+tomcat实现动静态分离
===============Tomcat 概述:
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0。
===tomcat服务器中:
1》安装jdk并配置环境变量:
tar -xvf jdk-8u5-linux-x64.tar.gz
mv jdk1.8.0_05/ /usr/local/src/java
2》安装tomcat:
tar -xvf apache-tomcat-7.0.54.tar.gz
mv apache-tomcat-7.0.54 /usr/local/src/tomcat
3》配置tomcat:
#vim /usr/local/src/tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改端口为默认WEB端口80;
<Host name="localhost" appBase="che"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/opt/che">
新增最后一行修改为WEB的家目录,如果要做代理,则name为localhost;
4》启动tomcat:
5》tomcat启动测试:
=============Nginx的安装与配置:
1》安装依赖库:
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre-devel
2》安装pcre库:
tar -xvf pcre-8.36.tar.gz
cd pcre-8.36
./configure && make && make install cd pcre-8.36
3》安装libmd5:
tar xf libmd5-0.8.2b.tar.gz
4》安装nginx:
ar -xvf nginx-1.9.8.tar.gz
cd nginx-1.9.8
CONFOPTS="
--user=user_00 \
--group=users \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-md5=/soft/md5/ \
--with-pcre=/usr/local/src/pcre-8.01 \
--without-select_module \
--without-poll_module \
--without-http_ssi_module \
--without-http_userid_module \
--without-http_geo_module \
--without-http_map_module \
--without-http_memcached_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--prefix=/usr/local/services/nginx-1.9.8 \
"
./configure $CONFOPTS && make && make install
编译参数详解:
--with-http_realip_module
此模块支持显示真实来源IP地址,主要用于NGINX做前端负载均衡服务器使用。
-with-http_stub_status_module
这个模块可以取得一些nginx的运行状态,
--with-http_gzip_static_module
这个模块在一个预压缩文件传送到开启Gzip压缩的客户端之前检查是否已经存在以“.gz”结尾的压缩文件,这样可以防止文件被重复压缩。
--with-md5=/soft/md5/
设定md5库文件路径
--with-sha1=auto/lib/sha1
设定sha1库文件路径
--with-pcre=/soft/pcre-8.01
设定PCRE库路径
--without-select_module
标准连接模式。默认情况下自动编译方式。您可以启用或禁用通过使用-select_module和不带- select_module配置参数这个模块
--without-poll_module
不使用poll模块
--without-http_ssi_module
不使用ngx_http_ssi_module模块,此模块处理服务器端包含文件(ssi)的处理.
--without-http_userid_module
不使用ngx_http_userid_module模块
--without-http_geo_module
这个模块基于客户端的IP地址创建一些ngx_http_geoip_module变量,并与MaxMindGeoIP文件进行匹配,该模块仅用于 0.7.63和0.8.6版本之后。但效果不太理想,对于城市的IP记录并不是特别准确,不过对于网站的来源访问区域的分析大致有一定参考性
。
--without-http_map_module
不使用ngx_http_map_module模块
--without-http_memcached_module
不使用ngx_http_memcached_module模块
--without-mail_pop3_module
不允许ngx_mail_pop3_module模块
--without-mail_imap_module
不允许ngx_mail_imap_module模块
--without-mail_smtp_module
不允许ngx_mail_smtp_module模块
4》配置说明:
配置文件位置:/usr/local/nginx/conf/nginx.conf
1. Nginx配置文件分为4个部分
2. main(全局设置)
3. server(主机设置)
4. upstream(负载均衡设置)
5. localtion(URL匹配特定位置的设置)
这四个 server继承main location继承server,upstream即不会继承,其它设置也不会被继承.
====nginx文件配置内容:
user user_00;
worker_processes 8;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 100000;
}
worker_rlimit_nofile 100000;
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
server_names_hash_bucket_size 128k;
client_header_buffer_size 32k;
large_client_header_buffers 432k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 254k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
gzip on;
gzip_min_length 1k;
gzip_buffers 416k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript;
gzip_vary on;
charset utf-8;
access_log off;
log_not_found off;
error_page 400 403 405 408 /40x.html;
error_page 500 502 503 504 /50x.html;
server {
listen 80;
server_name www.test.com;
location / {
root html/cheche;
index index.html index.htm;
}
}
include vhost/vhost.localhost.com;
}
虚拟主机文件内容:
upstream webcount {
server 10.0.0.202:8080 weight=1 max_fails=3 fail_timeout=20s;
# server 10.0.0.203:8080 weight=1 max_fails=3 fail_timeout=20s;
}
server {
listen 80;
server_name www.aatest.com;
charset utf-8;
location ~ (\.jsp)|(\.do)$ { #jsp和do的交给tomcat处理实现动静分离
index index.html index.htm index.jsp index.do;
proxy_pass http://webcount;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|htm)$#html和图片的和其它的静态内容存路径html
{
root /opt/che; #可自由指定
expires 30d;
}
}~
5》启动与平滑重启
# cd /usr/local/services/nginx-0.8.55/sbin/
# ./nginx –t 检测配置文件是否有错误
# ./nginx 启动nginx
# ./nginx -s reload
6》动静分离测试
1>在tomcat上
在WEB目录创建
# cd /opt/che
# echo “this is jsp” >index.jsp
# echo “this is do” >index.do
http://10.0.0.202:8080/index.jsp
http://10.0.0.202:8080/index.do
2>在Nginx上
在Nginx的/opt/che目录下
# cd /opt/che
# echo “this is index ” >index.html
# echo “this is index a” >aa.html
3>在浏览器里面
http://www.aatest.com/
http:// www.aatest.com /index.jsp
http://www.aatest.com/index.do
==========================
可以实现控制tomcat开启与关闭的脚本:
#!/bin/bash
# Title:tomcat.sh
# Decription:Tomcat manager
# system:Use Linux
# Author:Alvin_zeng
# Version:1.0
# Date:2016-08-22
# Copyright: 2016 (c) alvin
# License: GPL
TomcatDir="/usr/local/tomcat"
#====================================
# Function-->Men_CD()
#====================================
Men_CD()
{
clear
echo
echo "========TomcatManagerTool======"
echo
tput bold
echo "1: 启动tomcat服务"
tput sgr0
echo " [*] start tomcat service"
echo
tput bold
echo "2: 关闭tomcat服务"
tput sgr0
echo " [*] stop tomcat service"
echo
tput bold
echo "3: 重启tomcat服务"
tput sgr0
echo " [*] restart tomcat service"
echo
tput bold
echo "4: 查看tomcat日志"
tput sgr0
echo " [*] check tomcat logs"
echo
tput bold
echo "5:退出"
tput sgr0
echo " [*]exit"
echo
echo "========TomcatManagerTool======="
echo
}
#====================================
# Function-->Acation_Manager
#====================================
Acation_Manager()
{
Men_CD
echo -n "Please enter you number:"
read Myenter
case $Myenter in
1)
checktomcat=`ps -ef | grep java | grep "$TomcatDir" | wc -l`
if [ ${checktomcat} -eq 1 ]
then
echo
tput bold
echo " [Error]:The service is already running. Please stop the service at startup."
tput sgr0
echo
else
$TomcatDir/bin/startup.sh start
checktomcat1=`ps -ef | grep java | grep "$TomcatDir" | wc -l`
if [ ${checktomcat1} -eq 1 ]
then
tput bold
echo "Start Tomcat.....................[OK]"
echo "Start Tomcat.....................[OK]"
echo "Start Tomcat.....................[OK]"
tput sgr0
else
tput bold
echo "Start tomcat.....................[Fail]"
echo "Start tomcat.....................[Fail]"
echo "Start tomcat.....................[Fail]"
tput sgr0
return 1
fi
fi
;;
2)
checktomcat1=`ps -ef | grep java | grep "$TomcatDir" | wc -l`
if [ ${checktomcat1} -eq 1 ]
then
/bin/ps -ef | grep java | grep "$TomcatDir" | awk '{print $2}' | xargs kill -9 >>/dev/null 2>&1
if [ $? -eq 0 ]
then
echo
tput bold
echo "Tomcat Stop..............[OK]"
echo "Tomcat Stop..............[OK]"
echo "Tomcat Stop..............[OK]"
tput sgr0
echo
else
echo
tput bold
echo "Tomcat Stop...............[Fail]"
echo "Tomcat Stop...............[Fail]"
echo "Tomcat Stop...............[Fail]"
tput sgr0
echo
return 1
fi
else
echo
tput bold
echo "Tomcat The service is already close."
echo "Tomcat The service is already close."
echo "Tomcat The service is already close."
tput sgr0
echo
fi
;;
3)
ps -ef | grep java | grep "$TomcatDir" | awk '{print $2}' | xargs kill -9 >>/dev/null 2>&1
$TomcatDir/bin/startup.sh start
checktomcat1=`ps -ef | grep java | grep "$TomcatDir" | wc -l`
if [ ${checktomcat1} -eq 1 ]
then
echo
tput bold
echo "Restart Tomcat.....................[OK]"
echo "Restart Tomcat.....................[OK]"
echo "Restart Tomcat.....................[OK]"
tput sgr0
echo
else
tput bold
echo "Restart Tomcat.....................[Fail]"
echo "Restart Tomcat.....................[Fail]"
echo "Restart Tomcat.....................[Fail]"
tput sgr0
return 1
fi
;;
4)
tail -f $TomcatDir/logs/catalina.out
;;
5)
clear
exit 2
;;
*)
echo "Please enter |1|2|3|4|5"
;;
esac
}
#====================================
# Function-->Main
#====================================
Main()
{
Acation_Manager
if [ $? -eq 1 ]
then
exit 1
fi
}
Main;
================================
vhost.www.fanhougame.com 文件内容(原始内容,根据需要修改)
server {
listen 80 ;
server_name www.fanhougame.com fanhougame.com www.fanhouapp.com www.fanhougame.net fanhougame.net;
# server_name www.fanhougame.net fanhougame.net www.fanhouapp.net;
root /data/www/oa.com/www.fanhougame.com ;
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
return 444;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi-5313-web.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}
location ~ \.(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
error_log off;
access_log off;
expires max;
}
}
nginx+tomcat实现动静态分离的更多相关文章
- Nginx +Tomcat 实现动静态分离(转)
Nginx +Tomcat 实现动静态分离 动静态分离就是Nginx处理客户端的请求的静态页面(html页面)或者图片,Tomcat处理客户端请求的动态页面(jsp页面),因为Nginx处理的静态页面 ...
- Nginx 与Tomcat 实现动静态分离、负载均衡
Nginx 与Tomcat 实现动静态分离.负载均衡 一.Nginx简介: Nginx一个高性能的HTTP和反向代理服务器, 具有很高的稳定性和支持热部署.模块扩展也很容易.当遇到访问的峰值,或者有人 ...
- nginx同域名动静态分离
公司需求是如果是app加载静态页面的话要通过应用服务直接请求指定的服务 由于机房迁移 不得不将该文件迁移到一个指定的地方 需要通过nginx配置检测到是访问该静态页面的就转到该静态页面上面进行加 ...
- nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例
nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例 二级域名配置 在/etc/nginx/conf.d/目录下配置二级域名同名的conf文件,路径改成对应的即可 statics. ...
- Nginx+Tomcat构建动、静分离WEB架构
一.简介 二.环境介绍 三.后端服务器安装配置 四.安装论坛 五.安装配置前端Nginx服务器 六.验证服务 一.Tomcat简介 Tomcat是Apache 软件基金会(Apache Softwar ...
- 干货 | CDN搭配OSS最佳实践 ——搭建动静态分离的应用架构
一.传统架构及痛点 传统的网站产品应用架构,所有资源部署在应用服务器本地存储或挂载的数据存储区,对于动静态资源不作分离, 产品架构如下图所示: 该架构存在诸多问题: ● 系统性能会随着系统访问量的增长 ...
- Nginx+tomcat负载均衡并动静态分离
Nginx使用正则表达式配置location,指定某些后缀的文件直接从文件路径中找(如*.jpg直接去C:/XX/XX/XX/img下找),其他的请求转发给tomcat 同时可以配置多个tomcat ...
- nginx动静态分离以及配置https(安全组强行切换以及导致的问题解决)
公司原来的网络采用http/https同时支持的方式,http并不会强制自动跳转到https,最近要求强制切换,导致了一系列问题.趁今天测试完成了,整理如下: 1.要求HTTP自动跳转到HTTPS: ...
- nginx+tomcat负载均衡+动静分离+redis集中管理session
1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_process ...
随机推荐
- Masking operations
Using a mask, multiple bits in a nibble, byte, words can be set either on, off or inverted from on t ...
- 分类和逻辑回归(Classification and logistic regression)
分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...
- ChannelHandler,ChannelHandlerContext,ChannelPipeline
本小节一起学习一下ChannelHandler,ChannelHandlerContext,ChannelPipeline这三个Netty常用的组件,不探究它们的底层源码,我们就简单的分析一下用法 首 ...
- Console2支援中文顯示的正式設定法
1.用regedit找到HKEY_CURRENT_USER\Console,把底下的Console2 command window機碼給砍了.2.Console2的View功能表中,有個Console ...
- 基于 DirectX11 的 MMDViewer 01-简介
这个项目主要是为了 DirectX11 而来,前面做了一个关于 OpenGL 的项目,这次打算使用 DirectX11 来做一个 MMD 的模型浏览器.以前,我使用过 DirectX11 来做过一些项 ...
- python:窗口化和制作图形
#圆 from tkinter import * canvas = Canvas(width=800, height=600, bg='yellow')#声明窗口属性 canvas.pack(expa ...
- ELK 日志管理系统,初次尝试记录
简介: ELK 是一套开源的日志管理平台,主要包括三个组件,可以用于日志的收集.分析.存储和展示工作. ELK 成员:Elasticsearch .Logstash .Kibana( K4 ) ELK ...
- 前端开发之CSS篇四
一.相对定位 二.绝对定位 三.固定定位 四.z-index 前言 定位有三种:1.相对定位 2.绝对定位 3.固定定位 这三种定位,每种都暗藏玄机,所以要每个单独剖析. 1️⃣ 相对定位 1.三 ...
- ADB Not Responding - Android Studio
问题描述: 最近安装了Android Studio v1.0,运行的时候老是这个错误 解决方案: 网上有人说是已经有adb的进程在运行,可是打开任务管理器,找不到对应的adb 进程. 无奈之下,想到a ...
- Android开发实战之补间动画和属性动画
说起动画,其实一点也不陌生,在使用一款app的时候为了优化用户体验,多多少少的,都会加入动画. 安卓中的动画,分为两大类:补间动画和属性动画.本篇博文会详细介绍总结这两大动画,希望本篇博文对你的学习和 ...