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

 

你可能感兴趣的:(tomcat)