服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 详解Linux下Nginx+Tomcat整合的安装与配置

详解Linux下Nginx+Tomcat整合的安装与配置

2021-12-23 16:06【小洲】 Linux

本篇文章主要介绍了Linux下Nginx+Tomcat整合的安装与配置,具有一定的参考价值,有兴趣的可以了解一下。

一、安装Tomcat和JDK

1、上传apache-tomcat-6.0.18.tar.gz和jdk-6u12-linux-i586.bin至/usr/local

2、执行如下命令安装tomcat:

?
1
2
3
#cd /usr/local
 
#tar zxvf apache-tomcat-6.0.18.tar.gz

解压完成后将apache-tomcat-6.0.18重命名为tomcat

3、执行如下命令安装JDK:

?
1
#./jdk-6u12-linux-i586.bin

4、配置环境变量:

编辑/etc下的profile文件,加上如下内容: 

?
1
2
3
4
5
6
7
8
9
10
11
JAVA_HOME="/usr/local/jdk1.6.0_12"
 
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
 
PATH=".:$PATH:$JAVA_HOME/bin "
 
 
 
CATALINA_HOME="/usr/local/tomcat"
 
export JAVA_HOME CATALINA_HOME

5、启动tomcat并输入http://localhost:8080,如果看到猫的页面即tomcat和jdk安装成功

6、新建文件目录/home/www为网站存放目录,设置server.xml文件,在Host name=”localhost”处将appBase=的指向路径改为/home/www/web

7、创建index.jsp至/home/www/web/ROOT,内容为:“My web!” 

二、安装Nginx

1、上传nginx-0.7.63.tar.gz至/usr/local

2、执行如下命令解压nginx:

?
1
2
3
#cd /usr/local
 
#tar zxvf nginx-0.7.63.tar.gz

3、编译安装nginx

?
1
2
3
#cd nginx-0.7.63
 
#./configure --with-http_stub_status_module --with-http_ssl_module #启动server状态页和https模块

执行完后会提示一个错误,说缺少PCRE library 这个是HTTP Rewrite 模块,也即是url静态化的包

可上传pcre-7.9.tar.gz,输入如下命令安装:

?
1
2
3
4
5
6
7
8
9
#tar zxvf pcre-7.9.tar.gz
 
#cd pcre-7.9
 
#./configure
 
#make
 
#make install

安装pcre成功后,继续安装nginx

?
1
2
3
4
5
6
7
#cd nginx-0.7.63
 
#./configure
 
#make
 
#make install

4、nginx安装成功后的安装目录为/usr/local/nginx

在conf文件夹中新建proxy.conf,用于配置一些代理参数,内容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!nginx (-)
 
# 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;

 编辑安装目录下conf文件夹中的nginx.conf,输入如下内容 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#运行nginx所在的用户名和用户组
 
#user www www;
 
 
 
#启动进程数
 
worker_processes 8;
 
#全局错误日志及PID文件
 
error_log /usr/local/nginx/logs/nginx_error.log crit;
 
 
 
pid    /usr/local/nginx/nginx.pid;
 
 
 
#Specifies the value for maximum file descriptors that can be opened by this process.
 
 
 
worker_rlimit_nofile 65535;
 
#工作模式及连接数上限
 
events
 
{
 
 use epoll;
 
 worker_connections 65535;
 
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
 
http
 
{
 
 #设定mime类型
 
 include    mime.types;
 
 default_type application/octet-stream;
 
 include /usr/local/nginx/conf/proxy.conf;
 
 #charset gb2312;
 
 #设定请求缓冲  
 
 server_names_hash_bucket_size 128;
 
 client_header_buffer_size 32k;
 
 large_client_header_buffers 4 32k;
 
 client_max_body_size 8m;
 
    
 
 sendfile on;
 
 tcp_nopush   on;
 
 
 
 keepalive_timeout 60;
 
 
 
 tcp_nodelay on;
 
 
 
# fastcgi_connect_timeout 300;
 
# fastcgi_send_timeout 300;
 
# fastcgi_read_timeout 300;
 
# fastcgi_buffer_size 64k;
 
# fastcgi_buffers 4 64k;
 
# fastcgi_busy_buffers_size 128k;
 
# fastcgi_temp_file_write_size 128k;
 
 
 
# gzip on;
 
# gzip_min_length 1k;
 
# gzip_buffers   4 16k;
 
# gzip_http_version 1.0;
 
# gzip_comp_level 2;
 
# gzip_types    text/plain application/x-javascript text/css application/xml;
 
# gzip_vary on;
 
 
 
 #limit_zone crawler $binary_remote_addr 10m;
 
 ###禁止通过ip访问站点
 
 server{
 
    server_name _;
 
    return 404;
 
    }
 
 
 
 
 
 server
 
 {
 
  listen    80;
 
  server_name localhost;
 
  index index.html index.htm index.jsp;#设定访问的默认首页地址
 
  root /home/www/web/ROOT;#设定网站的资源存放路径
 
 
 
  #limit_conn  crawler 20;  
 
   
 
  location ~ .*.jsp$ #所有jsp的页面均交由tomcat处理
 
  {
 
   index index.jsp;
 
   proxy_pass http://localhost:8080;#转向tomcat处理
 
   }
 
    
 
   
 
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat
 
  {
 
   expires   30d;
 
  }
 
 
 
  location ~ .*\.(js|css)?$
 
  {
 
   expires   1h;
 
  }  
 
 
 
#定义访问日志的写入格式
 
   log_format access '$remote_addr - $remote_user [$time_local] "$request" '
 
       '$status $body_bytes_sent "$http_referer" '
 
       '"$http_user_agent" $http_x_forwarded_for';
 
  access_log /usr/local/nginx/logs/localhost.log access;#设定访问日志的存放路径
 
 
 
   
 
}

5、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

?
1
#/usr/local/nginx/sbin/nginx -t

如果屏幕显示以下两行信息,说明配置文件正确: 

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully

如果提示unknown host,则可在服务器上执行:ping www.baidu.com如果也是同样提示unknown host则有两种可能:

a、服务器没有设置DNS服务器地址,查看/etc/resolv.conf下是否设置,若无则加上

b、防火墙拦截

 6、启动nginx的命令

?
1
#/usr/local/nginx/sbin/nginx

这时,输入以下命令查看Nginx主进程号:

?
1
ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

7、停止nginx的命令

?
1
#/usr/local/nginx/sbin/nginx -s stop

8、在不停止Nginx服务的情况下平滑变更Nginx配置

a、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

?
1
/usr/local/nginx/sbin/nginx -t

如果屏幕显示以下两行信息,说明配置文件正确:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully

b、这时,输入以下命令查看Nginx主进程号:

?
1
ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

屏幕显示的即为Nginx主进程号,例如:

6302

这时,执行以下命令即可使修改过的Nginx配置文件生效:

?
1
kill -HUP 6302

或者无需这么麻烦,找到Nginx的Pid文件:

?
1
kill -HUP `cat /usr/local/nginx/nginx.pid`

9、nginx启动好后启动tomcat,此时输入http://主机ip地址即可看到“My web!”

三、其他

stub_status

语法: stub_status on

默认值: None

作用域: location

创建一个 location 区域启用 stub_status

“stub status” 模块返回的状态信息跟 mathopd's 的状态信息很相似. 返回的状态信息如下:

?
1
2
3
4
5
6
7
Active connections: 291
 
server accepts handled requests
 
16630948 16630948 31070465
 
Reading: 6 Writing: 179 Waiting: 106

active connections — 对后端发起的活动连接数

server accepts handled requests — nginx 总共处理了 16630948 个连接, 成功创建 16630948 次握手 (证明中间没有失败的), 总共处理了 31070465 个请求 (平均每次握手处理了 1.8个数据请求)

reading — nginx 读取到客户端的Header信息数

writing — nginx 返回给客户端的Header信息数

waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading + writing),意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/huangjingzhou/articles/2153405.html

延伸 · 阅读

精彩推荐