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

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

延伸 · 阅读

精彩推荐
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17