仅通过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,定义了两个目录的转发规则,将对该目录下文件的请求,转发至上面自定义的目录转发规则。

