阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Nginx和Tomcat搭建Web集群环境

257次阅读
没有评论

共计 4318 个字符,预计需要花费 11 分钟才能阅读完成。

一直以来对于 web 服务器对 tomcat 还是很熟悉了,但是很对于 nginx 还是有些陌生,一看到 nginx 的配置就让人有一种莫名的排斥,这就是对于陌生的恐惧,我们今天玩个有意思的,我从不了解 nginx,到 nginx 和 tomcat 搭建集群,大概在不到一个小时内完成。

看看我这一个小时的学习成果,说不上对你有帮助。

首先 nginx 是出自俄罗斯的一款轻量级 web 服务器,开源免费,而且至简。

它的网站是这个:http://nginx.org/en/download.html

下载的版本目前有三类,比较容易理解,一个是目前的开发版本(Mainline version), 第二类是稳定的最新版,比如目前最新的是 1.12.2 的版本,有源码包和 windows 版本。第三类算是怀旧稳定版,不一定线上的环境都是最新的,也考虑了兼容性,算是比较贴心吧。

使用 Nginx 和 Tomcat 搭建 Web 集群环境

说 nginx 至简,一个原因就是这个安装包确实够小,压缩版本不到 1M, 而解压后的版本也大概在 7M 左右。

[root@localhost nginx]# ll

total 960

-rw-r–r–. 1 root root 981687 Oct 18 13:14 nginx-1.12.2.tar.gz

安装 nginx 还是比较简便的,configure,make ,make install, 需要注意的是安装是需要几个依赖包的,比如 zlib,PCRE 的库,可以提前检查下。

# rpm -qa|grep zlib

zlib-1.2.3-29.el6.x86_64

zlib-devel-1.2.3-29.el6.x86_64

PCRE 的库需要的是 pcre-devel,配置了 yum 源使用 yum -y install pcre-devel 即可搞定。

# rpm -qa|grep pcre

pcre-devel-7.8-7.el6.x86_64

pcre-7.8-7.el6.x86_64

小结下安装的三个步骤:

  1. ./configure –prefix=/usr/local/nginx

  2. make

  3. make install

如果需要编辑 ssl 额外加个选项。

nginx 的启动确实很简单,直接使用 nginx 命令即可启动,默认是使用 80 端口,很快就能看到一个欢迎页面。

使用 Nginx 和 Tomcat 搭建 Web 集群环境

当然我们可以通过 fuser 来检验 80 端口的情况,或者检测 80 端口是否被占用:

# fuser -n tcp 80

80/tcp: 21412 21413

或者是:

# netstat -pan | grep -w 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21412/nginx

tcp 0 0 127.0.0.1:80 127.0.0.1:49593 TIME_WAIT –

tcp 0 0 192.168.253.219:57492 23.32.3.248:80 ESTABLISHED 21590/clock-applet

tcp 0 0 192.168.253.219:51678 60.221.218.180:80 TIME_WAIT –

tcp 1 0 ::ffff:192.168.253.21:39646 ::ffff:104.25.106.17:80 CLOSE_WAIT 12329/Java

tcp 1 0 ::ffff:192.168.253.21:37445 ::ffff:104.25.107.17:80 CLOSE_WAIT 12329/java

如果查看 nginx 相关的进程,会发现有个 master, 有个 worker 的进程。

# ps -ef|grep nginx

root 21412 1 0 22:39 ? 00:00:00 nginx: master process ./nginx

nobody 21413 21412 0 22:39 ? 00:00:00 nginx: worker process

root 21719 15134 0 22:43 pts/3 00:00:00 grep nginx

这个部分怎么理解,可以通过 nginx 的配置文件就能容易理解了。在 nginx.conf 文件中,开头就是如下的两行。可以很明显看出 worker 进程有 1 个,配置了 nobody,所以你看到的 worker 进程的属主就是 nobody

#user nobody;

worker_processes 1;

这个是 nginx 的架构。他是使用 epoll 的方式。

nginx 的命令几乎都不需要你重新去学习,直接使用 - h 就得到了帮助命令。所以我们很容易就会发现:./nginx -s stop 是停止的命令,启用配置文件使用 - c 选项。

在 nginx 所在的 sbin 目录下,一个完整的启动命令即为:

./nginx -c /usr/local/nginx/conf/nginx.conf

然后我们看看和 tomcat 怎么结合,nginx 常用来做 http 服务器,反向代理,邮件服务器等。也是做负载均衡的一种很自然的方案。我们来简单模拟一下。

比如当前后端的服务器是 tomcat,如果要实现负载均衡,通过 nginx 来转发就是一件很自然的事情,如果其中的一个 tomcat 出现问题,那也可以很方便的满足容错性。

为此我们需要配置若干个 tomcat 服务来模拟一下,比如我们使用 3 个 tomcat。

drwxr-xr-x. 9 root root 4096 Jan 3 23:14 tomcat1

drwxr-xr-x. 9 root root 4096 Jan 3 23:14 tomcat2

drwxr-xr-x. 9 root root 4096 Jan 3 23:14 tomcat3

默认端口为 8080,我们简单包装,三个 tomcat 的端口即为:

18080

28080

38080

修改 tomcat 的配置文件 server.xml 就需要注意以下几个地方的端口设置,分别为:

tomcat1:

<Server port=”18005″ shutdown=”SHUTDOWN”>

<Connector port=”18080″ protocol=”HTTP/1.1″

<Connector port=”18009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

tomcat2:

<Server port=”28005″ shutdown=”SHUTDOWN”>

<Connector port=”28080″ protocol=”HTTP/1.1″

<Connector port=”28009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

tomcat3:

<Server port=”38005″ shutdown=”SHUTDOWN”>

<Connector port=”38080″ protocol=”HTTP/1.1″

<Connector port=”38009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

然后启动做简单的验证:能看到小猫即可。

使用 Nginx 和 Tomcat 搭建 Web 集群环境

为了区别起见,我们可以在 webapps/ROOT/index.jsp 里面分别表示 tomcat1,tomcat2,tomcat3 这样后面做转发就知道是到达了哪个 tomcat 了。

此时的 tomcat 是可以了,我们配置 Nginx.

nginx 的配置核心就是 nginx.conf 了。

注意红色的部分配置:

#gzip on;

upstream jeanron100.com {

server 127.0.0.1:18080 weight=1;

server 127.0.0.1:28080 weight=2;

server 127.0.0.1:38080 weight=3;

}

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

#location / {

# root html;

# index index.html index.htm;

#}

location / {

proxy_pass http://jeanron100.com;

proxy_redirect default;

}

然后启动 nginx,使用命令:

./nginx -c /usr/local/nginx/conf/nginx.conf

然后在浏览器中输入 IP 和页面的名字。可以看到这个时候已经开始做了转发,现在调到了 tomcat2 上。

使用 Nginx 和 Tomcat 搭建 Web 集群环境

继续刷新,现在跳到了 tomcat3 上面。

使用 Nginx 和 Tomcat 搭建 Web 集群环境

不断的刷新,tomcat 和 nginx 是映射起来了。

下面关于 Nginx 的文章您也可能喜欢,不妨参考下:

Nginx 403 forbidden 的解决办法  http://www.linuxidc.com/Linux/2017-08/146084.htm

CentOS 7 下 Nginx 服务器的安装配置  http://www.linuxidc.com/Linux/2017-04/142986.htm

CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向  http://www.linuxidc.com/Linux/2017-04/142642.htm

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)http://www.linuxidc.com/Linux/2017-04/142880.htm

Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块  http://www.linuxidc.com/Linux/2017-05/144333.htm

Nginx 服务的 SSL 认证和 htpasswd 认证  http://www.linuxidc.com/Linux/2017-04/142478.htm

Ubuntu 16.04 上启用加密安全的 Nginx Web 服务器  http://www.linuxidc.com/Linux/2017-07/145522.htm

Linux 中安装配置 Nginx 及参数详解  http://www.linuxidc.com/Linux/2017-05/143853.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置  http://www.linuxidc.com/Linux/2017-03/142168.htm

CentOS6.9 编译安装 Nginx1.4.7  http://www.linuxidc.com/Linux/2017-06/144473.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150306.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4318字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中