windows2008下的tomcat服务
需求:JDK1.8.152 + tomcat8.5.30 + mysql5.7.23 + redis3.0.503(哨兵模式) + nginx1.12.2(前端代理)
本次所有应用安装在一台硬件设备上,有需求的自己拆分吧!!!
所用软件包下载地址:
链接:https://pan.baidu.com/s/1lrNFrbOCOXZi5TMTv4thqA
提取码:sq7k
1、nginx安装
下载地址:https://nginx.org/en/download.html
nginx主要做反向代理用,可以单独部署到其它机器上,这里nginx和tomcat部署在同一台机器上。
下载nginx-1.12.2.zip,并解压到目标目录,打开cmd进入到解压后的目录
停止、启动、重启的命令如下:
PS C:\Users\Administrator> cd D:\nginx-1.12.2 PS D:\nginx-1.12.2> start .\nginx.exe PS D:\nginx-1.12.2> .\nginx.exe -s stop PS D:\nginx-1.12.2> .\nginx.exe -s reload
注释:需要开发出站规则 tcp 80端口
1.1、自动启动(不是必须的)
使用于win2008版本;适用于win2012/2016的往后看
上边的已经可以启动nginx服务器了,但问题是当系统重启后需要手动重启才行;
软件下载地址:https://github.com/kohsuke/winsw/releases 下载软件WinSW.NET4.exe
.NET4 下载地址:http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe .net4.0
注释:需要先安装.NET4
1、把下载的WinSW.NET4.exe文件拷贝到nginx的安装目录下并重命名为nginx-server.exe;然后再同级目录见一个nginx-service.xml
<!-- nginx-service.xml --> <service> <id>nginx</id> <name>nginx</name> <description>nginx</description> <logpath>D:\nginx-1.12.2\</logpath> <logmode>roll</logmode> <depend></depend> <executable>D:\nginx-1.12.2\nginx.exe</executable> <stopexecutable>D:\nginx-1.12.2\nginx.exe -s stop</stopexecutable> </service>
1.2、结果如下:
1.2、系统是win2012/2016
1、下载winsw https://repo.jenkins-ci.org/artifactory/releases/com/sun/winsw/winsw/2.9.0/winsw-2.9.0-bin.exe 重命名nginx-service.exe
2、需要先安装.net 3.0,一路下一步到此,选中net 3.5
先点击安装,如安装失败再指定路径
将win2012r2的镜像文件中sources下面的sxs文件夹拷贝到系统,如D:\soft\sxs;指定备用源路径:
直至安装完成。
4、编辑文件
<?xml version="1.0" encoding="UTF-8" ?> <service> <id>Nginx</id> <name>Nginx</name> <description>本服务用于加载Nginx服务,请确保开机启动。</description> <logpath>D:\tools\nginx-1.22.0\logs</logpath> <executable>nginx.exe</executable> <stopexecutable>nginx.exe</stopexecutable> <stopargument>-s</stopargument> <stopargument>stop</stopargument> <logmode>rotate</logmode> </service>
5、然后打开dos窗口
D:\tools\nginx-1.22.0>nginx-service.exe install
1.2、如需代理
#user nobody; worker_processes 4; events { worker_connections 10240; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #gzip on; upstream node { server localhost:8081; } server { listen 80; server_name localhost; client_max_body_size 204M; location / { proxy_pass http://node; include proxy.conf; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 60; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
2、jdk安装
下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows
本文以安装JDK1.8做演示,下载jdk-8u152-windows-x64.exe,双击运行安装,本机安装的目录是C:\Program Files\Java
系统环境变量可以设置,也可以不设置。
这里不设置,假如你有多个tomcat需要用到不同的JDK版本,建议不要设置系统环境变量,而是更改tomcat的配置文件来指定该tomcat使用哪个版本的JDK。
可以写入系统环境变量里(如果写入系统变量里,3.1和3.2步骤就不需要再操作了),但我这里不写了
JAVA_HOME C:\Program Files\Java\jdk1.8.0_152 Path 最后追加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
3、tomcat安装
下载apache-tomcat-8.5.30-windows-x64.zip,并解压。
3.1、编辑 bin/setclasspath.bat ,增加以下两行内容,设置使用的JDK环境变量
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152" set "JRE_HOME=C:\Program Files\Java\jre1.8.0_152"
效果如下图:
3.2、编辑 bin/service.bat 设置使用的JDK环境变量
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152" set "JRE_HOME=C:\Program Files\Java\jre1.8.0_152"
效果如下图:
3.3、编辑 bin/startup.bat ,第56行,从start改为run
这样设置后,运行tomcat后,日志就不会实时显示到tomcat运行窗口了,如果使用默认(每个tomcat进程都输出到tomcat窗口)的话,起多个tomcat进程后,之前的所有tomcat进程都会被挤掉。
call "%EXECUTABLE%" run %CMD_LINE_ARGS%
效果如下图:
3.4、编辑 bin/catalina.bat
使日志保存在当天的日志文件中,而不是从始至终都保存在catalina.out里,造成该文件过大
在第359、362、366、369行(每行都添加下)添加如下内容
>> %CATALINA_HOME%\logs\catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out
效果如下图:
3.5、安装tomcat 服务作为系统进程
如果只有一个实例运行可以直接注册服务;如果后期需要运行多个tomcat实例,每个实例都需要调整jvm堆内存大小,就需要编辑下注册服务程序内容。
1、编辑bin/service.bat 42行 set DEFAULT_SERVICE_NAME=Tomcat9 建议修改成项目名,这里随意起个名333 2、重命名: /bin/Tomcat9.exe 和/bin/Tomcat9w.exe 更名为 /bin/333.exe 和 /bin/333w.exe 3、然后注册为服务: C:\tools\tomcat-9\bin>.\service.bat install Installing the service '333' ... Using CATALINA_HOME: "C:\tools\tomcat-9" Using CATALINA_BASE: "C:\tools\tomcat-9" Using JAVA_HOME: "C:\Program Files\Java\jdk1.8.0_152" Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_152\jre" Using JVM: "C:\Program Files\Java\jdk1.8.0_152\jre\bin\server\jvm.d ll" The service '333' has been installed. C:\tools\tomcat-9\bin>
注释:然后可以点击333w.exe 程序内的java项来设置jvm初始内存大小
3.6、删除已作为系统进程的tomcat服务
某些情况下,不想作为系统进程开机自启动,或是标识名字写错了,删除重建是有必要的
sc delete 服务名称
说明一下tomcat的几个默认端口号:
conf/server.xml
STARTUP:8080
DOWN:8005
AJP:8009 这个基本没用,可以把第116行注释掉
3.7、验证tomcat服务是否正常
1 确保tomcat服务已启动,运行services.msc查找tomcat服务是否启动; 2 打开cmd,查看8080端口有没有在监听; 3 打开IE浏览器,访问http://127.0.0.1:8080/,能否出现tomcat首页 4 如果都正常,恭喜你,已经顺利完成了第1个tomcat站点的部署; 5 如果其中一项有问题的话,去logs目录下,查看日志,解决报错,重新启动
4、手动新建tomcat站点
4.1、创建站点目录
4.2、复制程序
4.3、修改conf/server.xml,更改STARTUP 端口号、DOWN 端口号
sed -i "s/8080/8081/g "D:\tomcat-oa-8.5.30\conf\server.xml sed -i "s/8005/8006/g "D:\tomcat-oa-8.5.30\conf\server.xml
4.4、修改log名称
修改conf/server.xml,更改域名
注释:
这里新创建的tomcat,使用的还是JDK1.8 如果想换其它版本的JDK的话,请参考上文修改相应的配置文件
<Context path="" docBase="D:\webserver\360.oa.com.8081\" crossContext="true" privileged="true" reloadable="true" > </Context>
4.6、测试结果
注意:需要修改修改成index.jsp 才能自动识别;可以在后边输入 探针全名也是可以看的
5、mysql安装
注释:选择自定义安装----主要是选择安装路径,这里选择D盘安装mysql服务;
以管理员身份打开cmd,依次执行下面语句: 1,cd 'D:\MySQL\MySQL Server 5.7\bin'2,mysqld.exe -install 3,mysqld.exe --initialize-insecure 4. 去【服务】里找到MySQL,右键启动 5. netstat -an 看有没有3306
此时就可以通过DOS窗口进入mysql了。
5.2、修改sql——mode权限
这是之前的
修改方法:
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' default_storage_engine = InnoDB server_id = 109 log_error = "D:\MySQL\MySQL Server 5.7\logs\Mysql_error.log" slow_query_log = 1 slow_query_log_file = "D:\MySQL\MySQL Server 5.7\logs\Mysql_slow.log" log-bin = mysql-bin binlog_format = mixed max_binlog_size = 1G binlog_cache_size = 2M expire_logs_days = 30 long_query_time = 10 query_cache_type = 0 query_cache_size = 0 max_connections = 6000 max_connect_errors = 10000 thread_cache_size = 256 open_files_limit = 65535 group_concat_max_len = 1024000 symbolic-links=0 sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
再次查看
5.3、修改本地登陆密码、远程权限和关闭远程登陆
###########root用户开启远程链接-慎用############ #开启远程连接 root 用户名 % 只有11段的连接可以访问(IP) password 密码 GRANT ALL PRIVILEGES ON *.* TO 'root'@'11.11.11.%' IDENTIFIED BY 'password' WITH GRANT OPTION; 刷新缓存: FLUSH PRIVILEGES; 重起mysql服务 service mysqld restart ############关闭远程连接############## 如果您想关闭远程连接,恢复mysql的默认设置(只能本地连接),您可以通过以下步骤操作: #将root用户连接方式设置为localhost表示只能本地连接mysql update user set host='localhost' where user='root'; flush privileges; #刷新权限表,使配置生效 注释:参考链接:https://blog.csdn.net/netuser1937/article/details/53782921 https://www.cnblogs.com/keli/p/6964968.html **************上边只供远程密码访问,下边修改本地密码*********** 法一: mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost'; 法二: mysql> alter user 'root'@'localhost' identified by '123'; 法三: mysql> set password for 'root'@'localhost'=password('123'); 记得最后要刷新权限 mysql> flush privileges;
注释:这些都是宽松的授权模式;最好做到:用户专库专用,授权也需要加以限制,不能是all,具体需要什么权限可以问开发。
5.6、删除已作为服务的mysql
卸载 mysqld --remove mysql 注释:注意直接卸载会报错服务在运行,需要先停止服务,然后卸载。 https://blog.csdn.net/ooooooobh/article/details/78677265
6、redis安装(主从带哨兵)
下载地址:windows redis: https://github.com/ServiceStack/redis-windows/tree/master/downloads
https://blog.csdn.net/u010648555/article/details/79427606
6.1、redis主从设置(一主一从)
6.2、修改redis.windows.conf
6379文件夹,不做修改!(主)
6380文件夹,修改如下: (从)
port 6380 # slaveof <masterip> <masterport> slaveof 127.0.0.1 6379
6.3、注册成系统服务
.\redis-server.exe --service-install .\redis.windows.conf --Service-name RedisServer1 --loglevel verbose
注释:先启动主再启动从
6.4、查看主从结果
6.5、部署哨兵
根据安装和基本配置,已经有了主从配置 ,对应文件夹redis-3.0.503-6379 redis-3.0.503-6380 ;然后在每个文件夹下面新增 一个名为 sentinel.conf 的文件。配置内容如下:
主的sentinel.conf的配置如下:
bind 127.0.0.1 port 26379 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel auth-pass mymaster 123456 logfile "log/sentinel.log" # Generated by CONFIG REWRITE sentinel config-epoch mymaster 7 sentinel leader-epoch mymaster 7 daemonize yes
从的sentinel.conf的配置如下:
bind 127.0.0.1 port 26380 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel auth-pass mymaster 123456 logfile "log/sentinel.log" # Generated by CONFIG REWRITE sentinel config-epoch mymaster 7 sentinel leader-epoch mymaster 7 daemonize yes
6.6、启动哨兵
PS D:\Program Files\redis-64.3.0.503> .\redis-cli.exe -h 10.155.0.75 -p 6379 -a 123456 PS D:\Program Files\redis-64.3.0.503> .\redis-server.exe .\sentinel.conf --sentinel PS D:\Program Files\redis-64.3.0.503-26380> .\redis-cli.exe -h 10.155.0.75 -p 6380 -a 123456 PS D:\Program Files\redis-64.3.0.503-26380> .\redis-server.exe .\sentinel.conf --sentinel
6.7、测试
附录:
https://www.microsoft.com/zh-CN/download/confirmation.aspx?id=42642 redis: https://www.cnblogs.com/panter/p/6801210.html
https://www.cnblogs.com/joyet/p/6103041.html
https://github.com/ServiceStack/redis-windows/tree/master/downloads 下载 https://www.cnblogs.com/springlight/p/6288902.html 设置密码 requirepass "123456" masterauth "123456" maxmemory 400mb