部分内容转自 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服务的更多相关文章

  1. python3.x +django + nginx + uwsgi 搭建web服务

    最近一直在用django开发自己的网站.在开发和线上环境的对接过程中遇到了许多的坑.所以想以一个老鸟的经历来写一下怎么 搭建web服务 一.python3.x .django .nginx .uwsg ...

  2. docker 搭建 web 服务环境

    docker容器虽然早就听说过,但是本人还真的没去用过,刚好看到相关的文章,就分享了下,有机会可以实践下...... 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都 ...

  3. 基于jersey和Apache Tomcat构建Restful Web服务(二)

    基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...

  4. 基于jersey和Apache Tomcat构建Restful Web服务(一)

    基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...

  5. 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

    作者: Yi Ming Huang, 软件工程师, IBM Dong Fei Wu, 软件工程师, IBM Qing Guo, 软件工程师, IBM 出处: http://www.ibm.com/de ...

  6. nodejs搭建web服务教程

    nodejs搭建web服务教程 先安装nodejs 然后 命令node js文件 即可开启服务了 输出如下 Magic happens on port 9011 你查看端口可以看到tcp 0 0 :: ...

  7. 4、架构--NFS实践、搭建web服务、文件共享

    笔记 1.晨考 1.数据备份的方式有哪些 全量和增量 2.数据备份的命令有哪些,都有哪些优点缺点 cp : 本地,全量复制 scp :远程,全量复制 rsync :远程,增量复制 3.rsync的参数 ...

  8. Win10搭建web服务实现文件共享

    配置Internet Information Services服务,实现文件共享. 1.打开控制面板,启用IIS服务. 启用IIS服务,系统会自动搜索并安装IIS服务. 2.管理web服务 此时在浏览 ...

  9. LINUX学习-Nginx+JDK+Tomcat+Mysql搭建JAVA WEB

    一.安装JDK环境 1.先到  https://www.oracle.com/java/technologies/javase-jdk8-downloads.html  下载linux jdk-8u2 ...

随机推荐

  1. 互评Alpha版本——杨老师粉丝群——Pinball

    一.基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题 (1)N(Need,需求) 成语学习对除汉语言专业外的大学生的需求并不是很高,初中生和高中生因为在升学时需要参加语文 ...

  2. 线段树---no end

    额,还有 :区间操作,交,并,补等 区间合并 扫描线 这些问题有空再研究吧.... 先看j2ee了..... 传送门 版权声明:本文为博主原创文章,未经博主允许不得转载.

  3. POJ 2063 Investment 滚动数组+完全背包

    题目链接: http://poj.org/problem?id=2063 题意: 你现在有现金m元,你要做n年的存款投资,给你k种投资方式,每种需要现金vi元,能获得xi元的理论,一年到期后你要利用拿 ...

  4. Hexo博客搭建全解

    [原创,转载请附网址:http://dongshuyan.top] 欢迎来到莫与的博客,第一篇记录了一下怎么写一篇博客,以方便之后写博客~ #从配置说起下载安装Git与Node.js略过 1.安装he ...

  5. android入门 — Activity启动模式

    1.standard模式 standard模式是系统的默认启动方式,每次激活Activity都会创建Activity,并放在任务栈中. 系统不会在乎活动是否已经存在于返回栈中,每次启动都会创建该活动的 ...

  6. C语言文法阅读与理解

    <翻译单元>--><外部声明>--><函数定义>|<申报> <函数定义>--><声明说明符>-->< ...

  7. 爬虫学习之-xpath

    1.XPATH使用方法 使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点): a.通过绝对路径定位元素(不推荐!) WebElement ele = driver.findEle ...

  8. PHP中面向对象编程思想的3个特征

    面向对象编程思想的3个特征: 封装: 无非是一个大的指向思想,目的是为了将一个类设计得更为健壮! 其基本做法是: 尽可能地将一个类的成员私有化,只开放那些必不可少的对外的属性或方法,能private的 ...

  9. 彻底解决Webpack打包慢的问题

    转载 这几天写腾讯实习生 Mini 项目的时候用上了 React 全家桶,当然同时引入了 Webpack 作为打包工具.但是开发过程中遇到一个很棘手的问题就是,React 加上 React-Route ...

  10. 第102天:CSS3实现立方体旋转

    CSS3实现立方体旋转 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...