1. 网络拓扑图
目前:
修改成:
目前共有 2 台 ECS. 在每天 ECS 上安装 Nginx 与 Tomcat 组成一个集群.
2. 使用 Nginx 的目的
目的如下:
1. 为 Tomcat 分流,降低后台压力。
2. 方便对不同 URL 设置不同缓存时间,降低网络流量
3. 实现其他功能(未来可以针对指定 URL 限速,避免雪崩)
2.1. 分流
Nginx 处理静态资源请求能力远远超过 Tomcat。静态资源,如:图片、JS、CSS 可以直接由 Nginx 返回给客户端。其它通过 proxy_pass 模块转发给 Tomcat 处理。这样可以提高系统并发数,与吞吐量。
2.2. 设置缓存时间
在 Nginx 中,可以对静态资源设置客户端缓存时间。将资源缓存到客户端,减少客户端请求次数,以降低系统网络流量。
2.3. 其它功能
Nginx 上其它可用模块。比如
Ø gzip 模块,对静态资源做 gzip 压缩,降低网络流量;
Ø httpLimit 模块,可以设置阈值,限制并发数。避免雪崩
Ø HttpAccess 模块,可以做访问限制。比如:只允许管理员通过制定 IP 登陆管理系统。
Ø SSL 模块,在 Nginx 上配置 https.
3. 实施
目前两台 ECS 上已经部署好了 Tomcat 环境。还需要:
1. 调整 Tomcat 运行用户
2. 安装配置 Nginx
3. 调整 SLB。
3.1. 调整 Tomcat 运行用户
目前 Tomcat 使用 root 用户运行,具有安全隐患。建议新创建用户:webapp 归属组:webapp,
设置完毕后,调整 systemd.
在 systemd 中需要设置用户、ReadOnlyDirectories、ReadWriteDirectories。
3.2. 安装配置 Nginx
Nginx 版本: https://openresty.org/download/openresty-1.11.2.3.tar.gz, 下载并编译安装.
安装目录: /opt/server/
|
yum install -y perl openssl-devel pcre-devel
下载
curl -O https://openresty.org/download/openresty-1.11.2.3.tar.gz
编译安装
mkdir -p /opt/openresty
tar xf openresty-1.11.2.3.tar.gz
cd openresty-1.11.2.3
./configure \
--prefix=/opt/openresty \
--with-luajit \
--user=nobody \
--group=nobody \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_stub_status_module \
--with-stream \
&& gmake && gmake install \
|
之后, 在 systemd 中配置开机启动。
Nginx.conf 配置追加:
实现: 动静分离.
注意: 关于缓存时间。
如果更新静态文件后,URL 里添加版本号或者替换文件名,可以将缓存时间放长。如果没有,建议将缓存时间缩短,比如 2 小时。避免更新后,客户端上时间不见效。
3.3. 调整 SLB
目前 SLB 的 80 端口指向了 2 台 ECS 的 8080 端口。ECS 安装完 Nginx 后,Nginx 占用 80 端口。需要将 SLB 的 80 端口映射到 2 台 ECS 的 80 端口上。
3.4. Systemd 配置
参照附件: tomcat.service 与 nginx.service.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于