一、服务器环境
系统信息
4,64位
阿里云服务器
JDK:8u172
nginx:nginx-1.14.0
tomcat:
mysql:7
二、文件夹规范
/data
自定义文件夹,存放运行服务的所有文件
/data/www/web/{project} 存放静态网页程序,project为各项目名称
/data/www/deploy/{project} 存放打包好的可执行的部署程序
/data/log/{project} 存放各应用服务的日志文件
/data/image/{project} 存上传的图片文件
/data/local/ 存放集成的第三方应用服务,如zookeeper、datax、mysql(数据文件)
/data/file/{project} 存放上传的文件
/data/tmp/ 存放临时文件,如安装文件等
/usr
安装应用程序
/usr/java/{version} java运行环境
/usr/local/tomcat/{version} tomcat应用路径
/usr/local/nginx nginx应用路径
三、第一步,JDK环境安装
JDK安装版本:8.0_172(8u172)
JAVA_HOME路径:/usr/java/{JDK_VERSION}/
安装过程
更新包:yum update
移除原有jdk(若存在):yum remove java-1.x.0-xxx
安装JDK:rpm -ivh jdk-8u172-linux-x64.rpm,默认安装在 /usr/java/{version}目录下,或自定义安装目录:rpm -ivh --prefix= /opt rpm
查看是否安装成功:java -version
设置环境变量:
在/etc/profile.d/路径下新建一个文件,名为sh
写入以下语句:#!/bin/bash
JAVA_HOME=/usr/java/jdk1.8.0_172-amd64/
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
export CLASSPATH=.
保存文件,执行命令:chmod +x /etc/profile.d/java.sh
永久设置环境变量:source /etc/profile.d/java.sh
四、安装Nginx服务器
nginx版本: nginx-1.14.0
安装方式:源码编译安装
gcc 安装:
yum install gcc-c++
编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装
pcre pcre-devel 安装
yum install -y pcre pcre-devel
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。
zlib 安装
yum install -y zlib zlib-devel
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip
OpenSSL 安装
yum install -y openssl openssl-devel
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)
nginx安装
下载nginx源码包:wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
解压源码包:tar -zxvf nginx-1.12.1.tar.gz
编译配置:
cd /nginx-1.14.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module或直接./configure不带参数,则是默认配置
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
编译:make && make install
查找安装路径:whereis nginx
重启nginx:
启动 停止nginx
首先,cd /usr/local/nginx/sbin/
./nginx // 启动 nginx
./nginx -s stop // 停止 nginx
./nginx -s quit // 从容停止 nginx
./nginx -s reload // 重启 nginx
./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s stop 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
查询nginx进程:ps aux|grep nginx
重新加载配置文件
当我们修改了 nginx 的配置文件 nginx.conf 想让它立即生效时 这时我们就需要重启nginx
开机自启动
在local增加启动代码即可,vi /etc/rc.local,增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:chmod 755 rc.local
五、安装Tomcat服务器
默认安装位置
/usr/local/tomcat/apache-tomcat-x.x.xx/
Tomcat版本选择
Tomcat 8.0.52属于稳定版,tomcat9的新功能不能体验
Tomcat 8.5.32介于0.x和9.0之间,可体验9.0的部分新功能
当前选择:Tomcat 8.5.32
Tomcat安装
下载安装包,并上传到服务器/data/tmp
解压程序包:
cd /data/tmp
tar -zxvf apache-tomcat-x.x.xx.tar.gz
移动到/usr/local/tomcat下:
mv /data/tmp//apache-tomcat-8.5.32 /usr/local/tomcat//apache-tomcat-8.5.32
安装成功
启动和关闭
cd /usr/local/tomcat//apache-tomcat-8.5.32/bin
启动:./startup.sh
关闭:./shutdown.sh
优化--连接池配置
打开配置文件:vim /usr/local/tomcat/apache-tomcat-8.5.32/conf/server.xml
配置
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100" prestartminSpareThreads = "true" maxQueueSize = "100" />
参数解释
maxThreads,最大并发数,默认设置 200,建议在 500 ~ 800,根据硬件设施和业务来判断
minSpareThreads,Tomcat 初始化时创建的线程数,默认设置 25
prestartminSpareThreads,在 Tomcat 初始化的时候就初始化 minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就没啥效果了
maxQueueSize,最大的等待队列数,超过则拒绝请求
优化--连接参数
打开配置文件:vim /usr/local/tomcat/apache-tomcat-8.5.32/conf/server.xml
将默认的Connector修改为下面配置:
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" maxConnections="10000" redirectPort="8443" enableLookups="false" acceptCount="100" maxPostSize="10485760" compression="on" disableUploadTimeout="true" compressionMinSize="2048" acceptorThreadCount="2" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" URIEncoding="utf-8"/>
参数解释
protocol,Tomcat 8 设置 nio2 更好:apache.coyote.http11.Http11Nio2Protocol
protocol,Tomcat 6、7 设置 nio 更好:apache.coyote.http11.Http11NioProtocol
enableLookups,禁用DNS查询
acceptCount,指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100
maxPostSize,以 FORM URL 参数方式的 POST 提交方式,限制提交最大的大小,默认是 2097152(2兆),它使用的单位是字节。10485760 为 10M。如果要禁用限制,则可以设置为 -1
acceptorThreadCount,用于接收连接的线程的数量,默认值是1。一般这个指需要改动的时候是因为该服务器是一个多核CPU,如果是多核 CPU 一般配置为
端口配置问题
该问题在阿里云未提供网络安全组之前,需要手动开放端口
阿里云提供网络安全组后,在阿里云控制台--网络安全组内设置即可
Tomcat控制台
编辑/usr/local/tomcat/apache-tomcat-8.5.32/conf/stomcat-user.xml,添加如下信息:
<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>
关闭地址限制
修改tomcat管理功能配置文件(<tomcat>/webapps/manager/META-INF/context.xml),注释掉地址限制:
<Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --></Context>
或者在<tomcat>/conf/catalina/localhost/下导入 文件(文件在公司共享库)
十、参考
留言评论
暂无留言