nginx 与 tomcat 组合搭建web服务
部分内容转自 http://www.cnblogs.com/naaoveGIS/
1. Web服务
nginx是常用的web服务器,用于获取静态资源,类似的服务器还有apache。
tomcat是基于java servlet 的 web 容器,用于获取动态资源。
一般的web服务架构:前端部署nginx,后端部署tomcat。用户访问nginx,静态资源nginx直接返回,动态资源的请求被nginx转发到tomcat,tomcat将处理完的结构返回给nginx,然后到浏览器。
2.Nginx简介
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。
何为反向代理呢?即以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。
Nginx最常见的使用方法就是作为静态资源服务器,比如将CSS,JS,html,htm等文件进行缓存处理。
3.环境搭建
3.1下载
首先在官网中下载所需版本:http://nginx.org/en/download.html。目前我使用的版本是windows环境下的1.9.15。
下载完毕后,解压。
3.2开启Nginx
开启Nginx有两种方法,一种是直接点击开启,一种是命名行开启。
a.点击开启:
b.命名行开启:
开启成功后,在资源管理中可以看到:
3.3常见问题—启动失败
出现启动失败问题,一般是端口冲突问题,比如win7下的IIS已经启动并占用了80端口。在config目录下找到nginx.conf,打开文件进行如下修改:
4.初步使用
4.1用网页测试是否启动成功
其中的配置为:
其表示监听8010端口请求后,会首先去html文件夹下寻找index.html页面。
4.2详解部分参数含义
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
4.3配置tomcat跳转
通过proxy_pass配置请求转发地址。即当访问localhost的8010端口时,请求会跳转至localhost的8080端口处。修改完Nginx的配置后不需要重启Nginx,输入如下命令即可:
测试如下:
5.进一步使用
5.1静态文件分离配置
上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。
下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。
这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难,具体配置如下:
此时再直接输入localhost:8010,则会报404错误了。但是输入localhost:8010/index.jsp,则一样可以跳转至tomcat首页中。
5.2 负载配置
当一台服务器出现故障后,我们需要将请求自动转向另一台服务器,此种需求该如何配置呢?利用Nginx也是比较方便能够实现,具体配置如下:
注意,上面还加上了一个weight属性,此属性表示各服务器被访问到的权重,weight越高访问到的几率越高。
5.3其他配置
5.4关闭Nginx
nginx 与 tomcat 组合搭建web服务的更多相关文章
- python3.x +django + nginx + uwsgi 搭建web服务
最近一直在用django开发自己的网站.在开发和线上环境的对接过程中遇到了许多的坑.所以想以一个老鸟的经历来写一下怎么 搭建web服务 一.python3.x .django .nginx .uwsg ...
- docker 搭建 web 服务环境
docker容器虽然早就听说过,但是本人还真的没去用过,刚好看到相关的文章,就分享了下,有机会可以实践下...... 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都 ...
- 基于jersey和Apache Tomcat构建Restful Web服务(二)
基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...
- 基于jersey和Apache Tomcat构建Restful Web服务(一)
基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
- 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
作者: Yi Ming Huang, 软件工程师, IBM Dong Fei Wu, 软件工程师, IBM Qing Guo, 软件工程师, IBM 出处: http://www.ibm.com/de ...
- nodejs搭建web服务教程
nodejs搭建web服务教程 先安装nodejs 然后 命令node js文件 即可开启服务了 输出如下 Magic happens on port 9011 你查看端口可以看到tcp 0 0 :: ...
- 4、架构--NFS实践、搭建web服务、文件共享
笔记 1.晨考 1.数据备份的方式有哪些 全量和增量 2.数据备份的命令有哪些,都有哪些优点缺点 cp : 本地,全量复制 scp :远程,全量复制 rsync :远程,增量复制 3.rsync的参数 ...
- Win10搭建web服务实现文件共享
配置Internet Information Services服务,实现文件共享. 1.打开控制面板,启用IIS服务. 启用IIS服务,系统会自动搜索并安装IIS服务. 2.管理web服务 此时在浏览 ...
- LINUX学习-Nginx+JDK+Tomcat+Mysql搭建JAVA WEB
一.安装JDK环境 1.先到 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 下载linux jdk-8u2 ...
随机推荐
- 互评Alpha版本——杨老师粉丝群——Pinball
一.基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题 (1)N(Need,需求) 成语学习对除汉语言专业外的大学生的需求并不是很高,初中生和高中生因为在升学时需要参加语文 ...
- 线段树---no end
额,还有 :区间操作,交,并,补等 区间合并 扫描线 这些问题有空再研究吧.... 先看j2ee了..... 传送门 版权声明:本文为博主原创文章,未经博主允许不得转载.
- POJ 2063 Investment 滚动数组+完全背包
题目链接: http://poj.org/problem?id=2063 题意: 你现在有现金m元,你要做n年的存款投资,给你k种投资方式,每种需要现金vi元,能获得xi元的理论,一年到期后你要利用拿 ...
- Hexo博客搭建全解
[原创,转载请附网址:http://dongshuyan.top] 欢迎来到莫与的博客,第一篇记录了一下怎么写一篇博客,以方便之后写博客~ #从配置说起下载安装Git与Node.js略过 1.安装he ...
- android入门 — Activity启动模式
1.standard模式 standard模式是系统的默认启动方式,每次激活Activity都会创建Activity,并放在任务栈中. 系统不会在乎活动是否已经存在于返回栈中,每次启动都会创建该活动的 ...
- C语言文法阅读与理解
<翻译单元>--><外部声明>--><函数定义>|<申报> <函数定义>--><声明说明符>-->< ...
- 爬虫学习之-xpath
1.XPATH使用方法 使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点): a.通过绝对路径定位元素(不推荐!) WebElement ele = driver.findEle ...
- PHP中面向对象编程思想的3个特征
面向对象编程思想的3个特征: 封装: 无非是一个大的指向思想,目的是为了将一个类设计得更为健壮! 其基本做法是: 尽可能地将一个类的成员私有化,只开放那些必不可少的对外的属性或方法,能private的 ...
- 彻底解决Webpack打包慢的问题
转载 这几天写腾讯实习生 Mini 项目的时候用上了 React 全家桶,当然同时引入了 Webpack 作为打包工具.但是开发过程中遇到一个很棘手的问题就是,React 加上 React-Route ...
- 第102天:CSS3实现立方体旋转
CSS3实现立方体旋转 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...