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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510本文是原创持续连载发布,这篇是SpringMVC + dubbo +zookeeper + oracle 单机版初级架构,这是基本系统雏形。以下文章顺序是按本人实施顺序来的。
本人会尽可能不断去完善细节点,提高系统可行性及实用性。从前端的选择、系统中单点问题、发布及部署、数据缓存及数据库优化等问题着手考虑。
本文系统架构图
image.png
安装软件 版本 linux虚拟机 CentOS-6.5-x86_64-bin-DVD1.iso jdk jdk-8u112-linux-x64.tar.gz tomcat apache-tomcat-8.5.23.tar.gz zookeeper zookeeper-3.4.10.tar.gz oracle linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip nginx nginx/1.12.2 本人gitbub地址(含版本1.0的code 及 software) https://github.com/huang7230468/ArchModel_1
一、项目运行环境安装
1.1 java运行环境
1.1.1 JDK1.8安装
- 第一步,上传,解压 # tar –zxvf jdk-8u112-linux-x64.tar.gz
- 第二步,修改环境变量,在文末增加以下内容,保存生效 # vi /etc/profile
复制代码JAVA_HOME=/opt/soft/jdk1.8.0_112 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EXPORT JAVA_HOME EXPORT PATH EXPORT CLASSPATH
# source /etc/profile
- 第三步,测试
# java -version![]()
image.png1.2 项目容器
1.2.1 tomcat8安装
- 第一步,上传,解压
# tar –zxvf apache-tomcat-8.5.23.tar.gz- 第二步,测试
# cd /opt/soft/apache-tomcat-8.5.23/bin
# sh startup.sh
# ps -ef | grep tomcat
![]()
image.png
启动成功,访问http://www.192.168.1.110:8080/
若访问不通,则尝试检查服务器的防火墙
# service iptables status1.3 zookeeper分布式应用程序协调服务
1.3.1 zookeeper 安装
- 第一步,上传,解压
# tar –zxvf zookeeper-3.4.10.tar.gz- 第二步,修改配置文件,复制一份zoo_sample.cfg,同时命名为zoo.cfg
# cd /opt/soft/zookeeper-3.4.10/conf
# cp zoo_sample.cfg zoo.cfg 配置文件详解,请查阅相关文档- 第三步,启动
# cd /opt/soft/zookeeper-3.4.10/bin
# sh zkServer.sh start
# ps -ef | grep zookeeper![]()
image.png表示成功
![]()
image.png
若后期出现这个问题,请到dataDir (zoo.cfg)中将 进程文件删除就好了,出现这个问题是因为上一次非正常关闭程序
二、数据库--Oracle 模块
2.1 Oracle静默安装
- 第一步,创建所需的操作系统组和用户
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle- 第二步,修改Linux服务器内核参数
在/sbin/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数复制代码fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
修改后,使设置生效
# /sbin/sysctl –p若出现报错 则执行以下命令 </br>
# modprobe bridge // 加载bridge模块
# lsmod | grep bridge //查看模块加载
- 第三步,修改系统用户限制
在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数复制代码oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容
复制代码session required /lib/security/pam_limits.so session required pam_limits.so
在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容
复制代码if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
使设置生效
# source /etc/profile
- 第四步,创建安装目录(目录可按需修改)
# mkdir -p /u01/app/
# chown -R oracle:oinstall /u01
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app/- 第五步,创建/etc/oraInst.loc文件
复制代码nventory_loc=/u01/app/oracle/oraInventory inst_group=oinstall
更改文件的权限
# chown oracle:oinstall /etc/oraInst.loc
# chmod 664 /etc/oraInst.loc
- 第五步,设置oracle环境变量
# su - oracle
# vi ~/.bash_profile
增加以下内容复制代码export ORACLE_BASE=/u01/app/oracle export ORACLE_SID=orcl
使设置生效
# source /home/oracle/.bash_profile
以上安装oracle的基本配置好了,下面开始安装
- 第六步,解压oracle安装文件,并符合相应配置文件
用oracle用户,将安装文件上传到/home/oracle 目录下,解压
# unzip linux.x64_11gR2_database_1of2.zip
# unzip linux.x64_11gR2_database_2of2.zip
自动解压到当前目录下的database下,并复制出.rsp文件以备用
# mkdir etc
# cp /home/oracle/database/response/ /home/oracle/etc/
# su - root
# chmod 700 /home/oracle/etc/*.rsp- 第七步,修改配置静默安装的初始化文件
# su - oracle
修改安装Oracle软件的响应文件
# vi /home/oracle/etc/db_install.rsp复制代码oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型 ORACLE_HOSTNAME=WD_SERVER //37 行 主机名称(自己对应的主机名称,可利用hostname查看) UNIX_GROUP_NAME=oinstall //42 行 安装组 INVENTORY_LOCATION=/u01/app/oraInventory //47 行 INVENTORY目录 必须在ORACLE_BASE路径以外 SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 //83 行 oracle_home ORACLE_BASE=/u01/app/oracle //88 行 oracle_base oracle.install.db.InstallEdition=EE //99 行 oracle版本 oracle.install.db.isCustomInstall=true //108行 自定义安装 oracle.install.db.DBA_GROUP=dba //142行 dba用户组 oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型 oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName oracle.install.db.config.starterdb.SID=orcl //170行 SID oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)(200行) oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码 DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
开始以静默方式执行刚刚配置的db_install.rsp
# cd /home/oracle/database
# ./runInstaller -silent -force -responseFile home/oracle/etc/db_install.rsp
稍等。。。。。。。
出现 Successfully Setup Software. 成功使用root用户执行root.sh
# su - root
sh /u01/app/oracle/product/11.2.0/db_1/root.sh
# su - oracle
# vi ~/.bash_profile复制代码export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib export ORACLE_OWNER=oracle export SPFILE_PATH=$ORACLE_HOME/dbs export ORA_NLS10=$ORACLE_HOME/nls/data export DISPLAY=127.0.0.1:0.0
使设置生效
# source /home/oracle/.bash_profile
到此,可以尝试启动oracle
启动监听
# lsnrctl status
# sqlplus / as sysdba
修改下oracle默认配置,可不操作复制代码SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database flashback on; (如果要启用数据库闪回功能则执行) SQL> alter database open; SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象) SQL> alter system archive log current; (手工归档测试)
以下以脚本模式创建表空间及用户
# vi createuser.sql复制代码define data_tablespace_postfix="_data" define data_file_postfix="_data.dbf" define tmp_tablespace_postfix="_temp" define tmp_file_postfix="_temp.dbf" create tablespace &2&data_tablespace_postfix logging datafile '&3/&2&data_file_postfix' size 20480m; create temporary tablespace &2&tmp_tablespace_postfix tempfile '&3/&2&tmp_file_postfix' size 4096m; create user &2 identified by &4 default tablespace &2&data_tablespace_postfix temporary tablespace &2&tmp_tablespace_postfix; grant create session ,create any table ,create any view ,create any index,create any procedure ,create any trigger,create any sequence ,alter any table ,alter any procedure,alter any trigger,alter any sequence,select any table ,drop any table ,drop any view ,drop any trigger ,drop any sequence,drop any index,drop any procedure ,insert any table, update any table ,delete any table, unlimited tablespace to &2;
脚本说明:
&2 : 数据库用户
&3 :表空间路径
&4 :用户密码# sqlplus / as sysdba
SQL>@createuser.sql
到此为止,数据库的安装及用户创建已经完成,后续还会补充其他数据库方面知识,如双机热备等三、项目部署
复制代码开发环境是在idea中进行,可将github中代码检出,搭建起来,打包发布,此处代码略过。
四、Nginx模块
4.1 nginx搭建
CentOS6.5下配置yum安装Nginx。
- 第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo
# cd /etc/yum.repos.d/
# vim nginx.repo
填写如下内容:复制代码[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1
保存,则会产生一个 /etc/yum.repos.d/nginx.repo 文件
- 第二步,执行yum命令安装nginx
# yum install nginx -y (加-y后自动选择所要安装包名)
默认安装路径到 /etc/nginx 下
安装完成后,可以直接启动 nginx- 第三步,启动nginx,并加载到开机自动启动服务列表中
# chkconfig --add /etc/init.d/nginx (先将nginx服务加入chkconfig管理列表)
# service nginx start (启动nginx服务)
# service nginx stop (停止nginx服务)第四步,访问,出现以下表示成功,nginx默认端口是80
![]()
image.png未解决的问题
1、使用yum 安装时,想指定安装目录,网上使用这个,但未成功
#yum --installroot=/opt/soft/nginx install nginx -y4.2 nginx配置负载均衡服务器
- 第一步,新建自己的nginx配置文件
# vim app.conf
内容如下复制代码upstream ant.dubbo.com{ # 配置负载均衡 server 192.168.1.112:8080; #服务器地址 } server{ listen 80; #端口监听 server_name ant.dubbo.com; charset utf-8; location / { #匹配所有 #root /www; #index index.html index.htm; #proxy_pass http://ant.dubbo.com; #proxy_pass http://192.168.1.112:8080/; #proxy_redirect default ; } location /dubbo-web/ { # proxy_pass http://192.168.1.112:8080/dubbo-web/; proxy_pass http://ant.dubbo.com; # 采用负载均衡,http:// + upstream 名称 #proxy_redirect default ; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /a/{ #proxy_pass http://192.168.1.112:8080/dubbo-web/; proxy_pass http://ant.dubbo.com; #proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For ; $proxy_add_x_forwarded_for; } location ~ ^/(WEB-INF)/ { #禁止访问WEB-INF目录 deny all; } }
- 第二步,在nginx.conf 配置文件中把app.conf 引用进来
直接在http 内,增加以下语句,当然如果你的文档未放在conf.d下,需要
再此处配置;
include /etc/nginx/conf.d/*.conf;
在当前配置文件中可以修改指定nginx的访问日志 access.log 和 error.log
文件位置- 第三步, 重启nginx
# service nginx restart
地址栏访问 http://192.168.1.110/dubbo-web/index?name=1,出现以下字样,表示nginx跳转成功![]()
image.png未完待续。。。
预告,下一版, 『使用Jenkins配置Git+Maven的自动化构建』
作者:我是小蚂蚁
链接:http://www.jianshu.com/p/82fd9728eb68
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
最后
以上就是懵懂篮球最近收集整理的关于单点部署nginx+zookeeper方式一、项目运行环境安装二、数据库--Oracle 模块三、项目部署四、Nginx模块的全部内容,更多相关单点部署nginx+zookeeper方式一、项目运行环境安装二、数据库--Oracle内容请搜索靠谱客的其他文章。
发表评论 取消回复