微服务架构实战:Nginx的安装及负载均衡配置、开机启动
suiw9 2024-11-14 19:11 48 浏览 0 评论
Nginx的安装及负载均衡配置
在安装完分布式文件系统之后,就可以在应用程序中进行调用了。注意需要在 Web端的页面上进行访问,还必须借助Nginx 提供访问服务。使用Nginx 不仅可以构建负载均衡服务还能使用缓存设置。在跟踪器和存储节点上都必须安装Nginx,下面分别进行说明。
在跟踪器上安装Nginx
在两台 Tracker Server机器上,按如下方法安装和配置Nginxo安装pcre支持库,按顺序执行下列命令:
tar xf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make && make install
完成后,返回安装包存放路径/opt,按顺序执行下列命令,安装Nginx:
tar xfnginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/data/nginx \--with-pcre=/opt/pcre-8.40\
--user=nginx \
--group=nginx \
--with-http ssl module \--with-http realip module \--with-http stub status module
make && make install
编辑Nginx的配置文件nginx.conf,内容如下所示:
user nginx nginx;worker processes 2;
#pid /usr/local/nginx/nginx.pid;worker rlimit nofile 51200;
events
{
use epoll;
worker connections 20480;
}
http
{
includemime. types;
default type application/octet-stream;
log format main '$remote_ addr - $remote_user [$time_local] "$request
'$status $body bytes sent "Shttp referer"'
'"Shttp user agent" "$http x forwarded for" "$request time"';
access_log /data/nginx /logs/access.log main;
upstream server_group1{
server 192.168.1.23;
server 192.168.1.33;
}
server {
listen 80;
server name localhost;location /group1 {
#include proxy.conf;
proxy pass http://server groupl;
}
}
}
这个配置的原理是对两个存储节点上HTTP服务的访问,将由跟踪服务器进行负载均衡调度。例如,14.5节测试生成的图片文件,可以通过跟踪服务器使用如下所示的链接进行访问:
http://192.168.1.22/group1/M00/00/00/wKgBGFk3kUqACu9JAAGmMpryn2s674.png
使用如下命令启动Nginx:
/data/nginx/sbin/nginx
在存储节点上安装Nginx
在两台Storage机器上,进入存放安装包的路径/opt,按顺序执行下列命令,安装pcre支持库:
tar xf fastdfs-nginx-module_v1.16.tar.gz
tar xf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/data/pcre
make && make install
完成后,返回存放安装包的路径/opt,按顺序执行下列命令,安装Nginx:
tar xf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/data/nginx \—-with-pere-/opt/pcre-8.40\
--user=nginx1
--group-nginx \
—-with-http_ssl module \--with-http realip module l
--with-http stub status module \
--add-module=/opt/fastdfs-nginx-module/src
make && make install
完成后,按下列命令复制相关文件:
cp /opt/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/cd /opt/fastdfs-5.10/conf
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
完成后,使用如下命令编辑配置文件mod_fastdfs.conf:
vi /etc/fdfs/mod fastdfs.conf
编辑下列各项内容:
#日志目录
base path=/tmp
#跟踪服务器
tracker server=10.10.10.22:22122tracker server=10.10.10.32:22122#URL中是否有group名称
url have group name = true#storage path的个数
store_path_count=2
store_path0=/data/fdfs_storage/storage0store_pathl=/data/fdfs_storage/storage1
使用如下命令编辑Nginx配置文件:
vi /data/nginx/ conf/nginx.conf
文件的内容如下所示:
user nginx nginx;
worker processes 2;
#pid/usr/local/nginx/logs/nginx.pid;worker rlimit_nofile 1024;
events {
use epoll;
worker connections 1024;
}
http {
include mime.types;
server names hash bucket size 128;client header buffer_size 32k;
largeclient header buffers 432k;client max body size 20m;
limit rate 1024k;
default type application/octet-stream;
log format main '$remote addr - $remote user [$time local] "Sreauest" 1'$status $body bytes sent "$http referer",
I"Shttp user agent" "Shttp x forwarded for"';
access log/data/nginx/logs/access.log main;
server {
listen 80;
server name localhost;
location ~/group[0-9]/MO0{
#root /data/fdfs storage;ngx fastdfs module;
}
}
}
保存文件后,使用如下命令创建两个软链接:
ln -s /data/fdfs storage/storage0 /data/fdfs storage/storage0/M00
ln -s /data/fdfs storage/storagel /data/fdfs storage/storage1/M00
使用如下命令启动Nginx:
/data/nginx/sbin/nginx
开机启动
为了方便运维管理,前面安装的各个服务都可以设置为开机启动。
开机启动Tracker
在两台Tracker Server机器上,创建服务启动文件:
vi/etc/rc.d/init.d/fdfs trackerd
输入如下内容:
#!/bin/bash
#
#fdfs trackerd Starts fdfs trackerd#
#
#chkconfig: 234599 01
#description: FastDFS tracker server### BEGIN INIT INFO
# Provides: $fdfs trackerd###END INIT INFO
#Source function library.
. /etc/init.d/functions
PRG=/usr/bin/fdfs trackerdCONF=/etc/fdfs/tracker.conf
if[!-f $PRG ];then
echo "file $PRG does not exist!"exit 2
fi
if[!-f $CONF ]; then
echo "file $CONF does not exist! "
exit 2
fi
CMD="$PRG $CONF"RETVAL=0
start( {
echo -n #34;Starting FastDFS tracker server: "$CMD &
RETVAL=$?echo
return $RETVAL
}
stop () {
$CMD stopRETVAL=$?
return $RETVAL
}
rhstatus() {
status fdfs trackerd
}
restart( {
$CMD restart &
case "$1" in
start)
start;;
stop)
stop;;
status)
rhstatus
;;
restart|reload)
restart
;;
condrestart)
restart;;
* )
echo #34;Usage: $0 {start IstopIstatus|restart l.condrestart}"exit 1
esac
exit $?
按顺序执行下列命令,把 Tracker设置为开机启动:
chmod 755 /etc/rc.d/init.d/fdfs trackerd
chkconfig --add fdfs_trackerd
chkconfig fdfs_trackerd on
开机启动 Storage
在两台Storage机器上,创建服务启动文件:
vi /etc/init.d/fdfsstoraged
输入如下内容:
#!/bin/bash#
#fdfs storaged Starts fdfs storaged#
#
#chkconfig:2345 99 01
# description: FastDFS storage server### BEGIN INIT INFO
# Provides: $fdfs storaged### END INIT INFO
#Source function library../etc/init.d/ functions
PRG=/usr/bin/fdfs_storaged
CONF=/etc/fdfs/storage.conf
if [!-f $PRG ];then
echo "file $PRG does not exist! "exit 2
fi
if [!-f $CONF J;then
echo "file $CONF does not exist! "exit 2
fi
CMD="SPRG $CONF"RETVAL=0
start({
echo -n "Starting FastDES storage server: "$CMD &
RETVAL=$?echo
return $RETVAL
stop(){
$CMD stopRETVAL-$?
return $RETVAL
rhstatus() {
status fdfs_storaged
}
restart({
$CMD restart &
}
case "$1" instart)
start;
;
stop)
stop
status)
rhstatus
;;
restartlreload)
restart
;;
condrestart)
restart;;
*)
echo "Usage: $0{startlstoplstatus| restartl condrestart}"exit 1
esac
exit $?
按顺序执行下列命令,把 Storage设置为开机启动:
chmod 755 /etclrc.d/init.d/fdfs storaged
chkconfig --add fdfs storaged
chkconfig fdfs storaged on
开机启动Nginx
在四台机器中各创建一个Nginx启动文件:
vi /etc/init.d/nginx
输入如下内容:#!/bin/bash
# chkconfig: -8515PATH=/data/nginx
DESC="nginx daemon"NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.confPIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAMEset -e
[-x "$DAEMON" 1llexit 0do start( {
$DAEMON -c $CONFIGFILE I echo -n "nginx already running"}
do_stop ({
$DAEMON -s stop ll echo -n "nginx not running"}
do reload() {
$DAEMON-s reload ll echo -n "nginx can't reload")
case "$1" instart)
echo -n "Starting $DESC: $NAME"do_start
echo ".";;
stop)
echo -n "Stopping $DESC:$NAME""do_stop
echo ".";;
reloadl graceful)
echo -n "Reloading $DESC configuration. . ."do reload
echo ".";
restart)
echo -n "Restarting $DESC:$NAME"do stop
do_startecho ".";;
*)
echo "Usage: $SCRIPTNAME {startlstopl reloadlrestart}">&2exit 3
;;
esacexit 0
按顺序执行下列命令,把 Nginx设置为开机启动:chmod 755 /etc/rc.d/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
小结
本章使用开源的FastDFS搭建了一个高可用的分布式文件系统,并通过Nginx为文件的访问设置了负载均衡服务,从而为微服务应用提供一个高性能的文件服务器。
在完成安装并测试正常之后,即可在库存管理项目中配置分布式文件系统的链接地址,使用微服务与分布式文件系统进行联调。
本文给大家讲解的内容是微服务架构实战:Nginx的安装及负载均衡配置、开机启动
- 下篇文章给大家讲解的是springcloud微服务架构实战:使用Jenkins实现自动化构建;
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
相关推荐
- 5款Syslog集中系统日志常用工具对比推荐
-
一、为何要集中管理Syslog?Syslog由Linux/Unix系统及其他网络设备生成,广泛分布于整个网络。因其包含关键信息,可用于识别网络中的恶意活动,所以必须对其进行持续监控。将Sys...
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
-
简介今天给大家推荐一个开源的数据库管理工具——DBeaver。它支持多种数据库系统,包括Mysql、Oracle、PostgreSQL、SLQLite、SQLServer等。DBeaver的界面友好...
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
-
NavicatPremium,一款集数据迁移、数据库管理、SQL/查询编辑、智能设计、高效协作于一体的全能数据库开发工具。无论你是MySQL、MariaDB、MongoDB、SQLServer、O...
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
-
一、什么场景使用MongoDB?...
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
-
作为一名在NoSQL丛林中披荆斩棘的数据猎人,没有比GUI工具更称手的瑞士军刀了。本文将带你围观五款主流MongoDB管理神器的特性与暗坑,附赠精准到扎心的吐槽指南一、MongoDBCompass:...
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
-
前言最近在做neo4j相关的同步处理,因为产线的可视化工具短暂不可用,发现写起来各种脚本非常麻烦。...
- solidworks使用心得,纯干货!建议大家收藏
-
SolidWorks常见问题...
- 统一规约-关乎数字化的真正实现(规范统一性)
-
尽管数字化转型的浪潮如此深入人心,但是,对于OPCUA和TSN的了解却又甚少,这难免让人质疑其可实现性,因为,如果缺乏统一的语义互操作规范,以及更为具有广泛适用的网络与通信,则数字化实际上几乎难以具...
- Elasticsearch节点角色配置详解(Node)
-
本篇文章将介绍如下内容:节点角色简介...
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
-
作者:DaisyH8746在张大妈上已经混迹很久了,有事没事看看“什么值得买”已渐渐成了一种生活习惯,然而却从来没有想过自己要写篇文章发布上来,直到由于我产前功课做得“太过认真”(认真到都有点过了,...
- 比任何人都光彩照人的假期!水润、紧致的肌肤护理程序
-
图片来源:谜尚愉快的假期临近了。身心振奋的休假季节。但是不能因为这种心情而失去珍贵的东西,那就是皮肤健康。炙热的阳光和强烈的紫外线是使我们皮肤老化的主犯。因此,如果怀着快乐的心情对皮肤置之不理,就会使...
- Arm发布Armv9边缘AI计算平台,支持运行超10亿参数端侧AI模型
-
中关村在线2月27日消息,Arm正式发布Armv9边缘人工智能(AI)计算平台。据悉,该平台以全新的ArmCortex-A320CPU和领先的边缘AI加速器ArmEthos-U85NPU为核心...
- 柔性——面向大规模定制生产的数字化实现的基本特征
-
大规模定制生产模式的核心是柔性,尤其是体现在其对定制的要求方面。既然是定制,并且是大规模的定制,对于制造系统的柔性以及借助于数字化手段实现的柔性,就提出了更高的要求。面向大规模定制生产的数字化业务管控...
- 创建PLC内部标准——企业前进的道路
-
作者:FrankBurger...
- 标准化编程之 ----------- 西门子LPMLV30测试总结
-
PackML乃是由OMAC开发且被ISA所采用的自动化标准TR88.00.02,能够更为便捷地传输与检索一致的机器数据。PackML的主要宗旨在于于整个工厂车间倡导通用的“外观和感觉”,...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
-
- 5款Syslog集中系统日志常用工具对比推荐
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
- solidworks使用心得,纯干货!建议大家收藏
- 统一规约-关乎数字化的真正实现(规范统一性)
- Elasticsearch节点角色配置详解(Node)
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)