阿里云ECS每天一件事D9:nginx1.7整合tomcat8.0

仅通过8080端口访问jsp显然不是一算是一个太好的方法,可以使用nginx的proxy_pass子模块,实现nginx转发jsp请求至tomcat。

典型的配置如下:

 1 server {
 2     listen        80;
 3     server_name   domain;
 4     root          /data/web/domain;
 5     access_log    logs/domain/access.log;
 6     
 7     location / {
 8         index index.jsp;
 9     }
10     
11     location ~ .jsp$ {
12         proxy_pass              http://domain:8080;
13         proxy_set_header        X-Real-IP $remote_addr;
14         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
15         proxy_set_header        Host $http_host;
16     }
17     
18     location @CustomContext {
19         sendfile off;
20         proxy_pass         http://domain:8080;
21         proxy_redirect     default;
22 
23         proxy_set_header   Host             $host;
24         proxy_set_header   X-Real-IP        $remote_addr;
25         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
26         proxy_max_temp_file_size 0;
27 
28     }
29 
30     location ~ "^/manager/*" {
31         try_files $uri @CustomContext;
32     }
33 
34     location ~ "^/test/*" {
35         try_files $uri @CustomContext;
36     }
37 
38     location ~* .(gif|jpg|png)$ {
39         access_log off;
40         expires 30d;
41     }
42 
43     location ~ /.ht {
44         deny all;
45     }
46 }

其中:

Line11-Line19,一段常规的转发配置,将请求转发至同名的8080端口;

Line18-Line28,是一段特殊的配置信息,定义了一个针对Context应用目录的转发规则。因为当你直接转发"http://domain:8080/directory"时,会报配置文件错误,因为proxy_pass并不能转发目录;

Line30-Line32及Line34-Line36,定义了两个目录的转发规则,将对该目录下文件的请求,转发至上面自定义的目录转发规则。

原文地址:https://www.cnblogs.com/bashenandi/p/4389901.html