仅通过8080端口访问jsp显然不是一算是一个太好的方法,可以使用nginx的proxy_pass子模块,实现nginx转发jsp请求至tomcat。
典型的配置如下:
server {
listen ;
server_name domain;
root /data/web/domain;
access_log logs/domain/access.log; location / {
index index.jsp;
} location ~ \.jsp$ {
proxy_pass http://domain:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
} location @CustomContext {
sendfile off;
proxy_pass http://domain:8080;
proxy_redirect default; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size ; } location ~ "^/manager/*" {
try_files $uri @CustomContext;
} location ~ "^/test/*" {
try_files $uri @CustomContext;
} location ~* \.(gif|jpg|png)$ {
access_log off;
expires 30d;
} location ~ /\.ht {
deny all;
}
}
其中:
Line11-Line19,一段常规的转发配置,将请求转发至同名的8080端口;
Line18-Line28,是一段特殊的配置信息,定义了一个针对Context应用目录的转发规则。因为当你直接转发"http://domain:8080/directory"时,会报配置文件错误,因为proxy_pass并不能转发目录;
Line30-Line32及Line34-Line36,定义了两个目录的转发规则,将对该目录下文件的请求,转发至上面自定义的目录转发规则。