环境:Ubuntu 8.04.4 LTS \n \l

1.tomcat和jdk已经装好,见我的另一篇博客,这里不再叙述。这里直接写nginx怎么做web服务器的配置,并与tomcat相结合。

2.安装nginx

sudo apt-get install nginx

3.配置nginx

3.1在/etc/nginx/conf.d目录下建一个proxy.conf文件(实现转给tomcat,也即跳转代理的参数配置)

/etc/nginx/conf.d$ vim proxy.conf

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;   #获取真实IP

#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       4k;

proxy_buffers           4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

3.2 配置主配置文件nginx.conf,下面是一个配置实例:

user www-data;

worker_processes  1;

error_log  /var/log/nginx/error.log;

pid        /var/run/nginx.pid;

events {

use epoll;

worker_connections  4096;

# multi_accept on;

}

http {

include       /etc/nginx/mime.types;

access_log /var/log/nginx/access.log;

sendfile        on;

#tcp_nopush     on;

#keepalive_timeout  0;

keepalive_timeout  65;

tcp_nodelay        on;

gzip  on;

gzip_disable "MSIE [1-6]\.(?!.*SV1)";

server {

listen       80;

server_name  www.abc.com;

location / {

root /home/web/front/www;

index  index.do ;

}

location ~ .*.do$ {

index   index.do;

proxy_pass      http://1.1.1.1:8080;  

}

location ~ .*.jsp$ {

index   index.jsp;

proxy_pass      http://1.1.1.1:8080;  

}

# redirect server error pages to the static page /50x.html

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

}

# mail {

#     # See sample authentication script at:

#     # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript

#

#     # auth_http localhost/auth.php;

#     # pop3_capabilities "TOP" "USER";

#     # imap_capabilities "IMAP4rev1" "UIDPLUS";

#

#     server {

#         listen     localhost:110;

#         protocol   pop3;

#         proxy      on;

#     }

#

#     server {

#         listen     localhost:143;

#         protocol   imap;

#         proxy      on;

#     }

# }

解释:

http://1.1.1.1:8080;  //1.1.1.1是tomcat的地址,*.do和*.jsp的页面都会转发给1.1.1.1上面的8080端口,也就是转给tomcat。

 listen       80;  //nginx监听端口

server_name  www.abc.com;  //虚拟主机的名字(域名)

 root /home/web/front/www; //虚拟主机对应的目录

index  index.do ;  //index.do是索引名称,访问域名时会首先找到这个文件,然后tomcat再去根据这个文件做相应处理、打开页面。


另外一个虚拟主机配置:

server {

listen       80;

server_name  passport.abc.com;

location / {

root /home/web/front/passport;

index  index.do;

}

location ~ .*.do$ {

index   index.do;

proxy_pass      http://1.1.1.1:8080;

}

location ~ .*.jsp$ {

index   index.jsp;

proxy_pass      http://1.1.1.1:8080;

}

# redirect server error pages to the static page /50x.html

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

4.注意事项和总结

index  index.do ;  //这个索引文件不能用*.do,必须是确定的名字,并且要是对的

配置虚拟主机的时候  sites-enabled 中一定要手动建立软连接,指向虚拟站点目录 sites-available。用sudo a2ensite * 不起作用、、

5.附  location

语法:location [=|~|~*|^~] /uri/ { … }
默认:否

上下文:server

这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式,你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。

确定 哪个location 指令匹配一个特定指令,常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写,最明确的匹配将会被使用(查看下文明白 nginx 怎么确定它)。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式,使用常规字符串的结果。

有两个方法修改这个行为。第一个方法是使用 “=”前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。例子:如果经常发生”/”请求,那么使用 “location = /” 将加速处理这个请求。

第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。

而且它重要在于 NGINX 做比较没有 URL 编码,所以如果你有一个 URL 链接’/p_w_picpaths/%20/test’ , 那么使用 “p_w_picpaths/ /test” 限定location。

总结,指令按下列顺序被接受:
1. = 前缀的指令严格匹配这个查询。如果找到,停止搜索。
2. 剩下的常规字符串,长的在前。如果这个匹配使用 ^~ 前缀,搜索停止。
3. 正则表达式,按配置文件里的顺序。
4. 如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

例子:

location = / {
# 只匹配 / 查询。
[ configuration A ]
}

location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}

location ^~ /p_w_picpaths/ {
# 匹配任何已 /p_w_picpaths/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}

location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以gif、jpg 或 jpeg 结尾的请求。然而所有 /p_w_picpaths/ 目录的请求将使用 Configuration C。
[ configuration D ]
}

例子请求:

/ -> configuration A

/documents/document.html -> configuration B

/p_w_picpaths/1.gif -> configuration C

/documents/1.jpg -> configuration D

注意:按任意顺序定义这4个配置结果将仍然一样。


转载于:https://blog.51cto.com/funtime/1683790

nginx和tomcat整合相关推荐

  1. (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

  2. 【CentOS】 Nginx+jdk+tomcat 环境搭建

    CentOS  Nginx+jdk+tomcat 环境搭建 一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/ ...

  3. tomcat ng mysql 集成_整合nginx,tomcat,mysql的安装与配置

    linux下Nginx+tomcat+mysql整合的安装与配置维护 安装Tomcat和JDK上传apache-tomcat-6.0.18.tar.gz和jdk-6u12-linux-i586.bin ...

  4. Linux 下Nginx+Tomcat 完美整合 nginx tomcat 整合方式

    Linux 下Nginx+Tomcat 完美整合 nginx tomcat 整合方式 随着IT行业的不断发展,个人.企业应用对网站的性能也不断的提高,从以前的apache+tomcat整合.weblo ...

  5. Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)

    Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...

  6. 负载均衡环境搭建实战之nginx和tomcat

    Linux基本环境 负载均衡的环境需要在linux下搭建完成,所以有一个基础的linux系统是必须的,这里建议大家按照http://edu.51cto.com/course/10209.html中的基 ...

  7. Apache、Nginx、Tomcat、PHP的区别

    Apache.Nginx.Tomcat.PHP的区别 Apache和Nginx算是市面上两款比较强大的WEB服务软件. Apache的优点: 支持模块多,功能多 运行稳定性强 支持PHP模块,无需安装 ...

  8. 在Linux下进行Apache+tomcat整合

    今天为大家介绍如何在Linux下进行Apache+tomcat整合,虚拟机版本是Redhat5,ip地址为192.168.1.12,实验步骤如下: 一 安装Jdk 二 安装Apache 三 安装tom ...

  9. 基于nginx的tomcat负载均衡和集群(超简单)

    今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点. 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法. 要集群t ...

最新文章

  1. Ubuntu 14.04 64bit上查看网页中的cookies
  2. python小游戏开发,使用python实现英语打字游戏
  3. 百年通信史:落后西方半世纪的中国,用 20 年绝地反杀! | 文末送福利
  4. 1.Hyper-V虚拟机在wifi环境下的外网连接配置
  5. ubuntu下vim的命令及使用方法
  6. 交通警察手势信号(动画演示)
  7. simpy练习案例(二):不直接控制流程,而是使用事件隐形控制流程 env.event()
  8. 水冒泡了几度_冒泡和选择排序详解
  9. 产教融合,共塑未来”,CIE 2018 中国 IT 教育博鳌论坛盛大落幕
  10. Node+fs+定时器(node-schedule)+MySql
  11. 学python有前途吗-我们能用Python做什么?学Python有前途吗?
  12. JwtUtil-MD5Util-RedisUtil,以及springboot aop练习(记录)
  13. Introduction to Computer Networking学习笔记(十五):End to End Delay 端对端延迟
  14. 15款桌面搜索软件横向评测
  15. NumPy用户指南(2)——安装NumPy
  16. java随机生成测试数据
  17. Centos 7系统密码破解
  18. 华为OD机试题:统计射击比赛成绩
  19. VMware Workstation 错误:“以独占方式锁定此配置文件失败。另一个正在运行的VMware进程可能正在使用配置文件。”的解决方法
  20. 【第十一篇】字体设置css变形(transfom)4种

热门文章

  1. Djago模型层(基础)
  2. nodejs安装失败
  3. c/c++ 基金会(七) 功能覆盖,虚函数,纯虚函数控制
  4. 事务隔离级别神话与误解
  5. Sql Server系列:键和约束
  6. STM32学习笔记(7):USART串口的使用
  7. 工程日志(110316)-机房内电子信息设备电量估算
  8. where、having、group by、order by、limit的区别和使用顺序
  9. 黑客攻防技术宝典Web实战篇第2版—第5章 避开客户端控件
  10. mysql innodb_data_file_path_MySQL修改innodb_data_file_path参数的一些注意事项