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

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

445次阅读
没有评论

共计 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、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984193
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...