JAVA开发部署文档.docx
- 文档编号:721443
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:29
- 大小:1.88MB
JAVA开发部署文档.docx
《JAVA开发部署文档.docx》由会员分享,可在线阅读,更多相关《JAVA开发部署文档.docx(29页珍藏版)》请在冰点文库上搜索。
JAVA开发部署文档
JAVA开发部署文档(linux-centos7+)
1jdk1.8+
首先确认电脑有没有安装jdk,查看jdk安装情况。
Java-version:
WhereisJAVA:
2mysql
这里使用的是mysql
Whereismysql:
查看mysql文件路径
查看mysql状态:
查看mysql版本:
mysql-umayahouse-p
输入密码:
mayahouse
输入命令:
selectversion();
如果没有安装mysql或者mysql安装失败,请自行在安装mysql
linuxcentos7在/etc/f,编辑该文件,在最后面添加如下,作用有
1:
字符集使用UTF-8mb4
2:
使得支持emoj表情
3:
防止多表关联groupby出错
[mysqld]
#服务端默认字符集
character-set-server=utf8mb4
#连接层默认字符集
collation-server=utf8mb4_unicode_ci
#设置SQL模式,解决高版本groupby报错;在5.7之后要设置,防止报错“Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggre”
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#设置mysql密码过期策略,这里设置为0,所有账户永不过期,单位是天,详见
default_password_lifetime=0#如果设置为零标识永不过期
#设置默认时区,为北京时间,东8区,查看时区:
showvariableslike"%time_zone%";
default-time_zone='+8:
00'
#允许最大连接数
max_connections=2000
[client]
#客户端来源数据的默认字符集
default-character-set=utf8mb4
[mysql]
#数据库默认字符集
default-character-set=utf8mb4
修改之后记得重启mysql:
servicemysqldrestart
3部署tomcat
解压tomcat8+到/usr/local/tomcat8/下面
进入tomcat的启动目录bin下,使用命令./catalina.shrun或者nohup./startup.sh&
启动tomcat
如果不熟悉,请使用第一种启动方案,可以看到实时日志
tomcat相关配置:
注意,项目里面对tomcat配置文件进行修改,这要改成
4安装nginx
网络下载nginx-1.10.2,解压并安装到磁盘,配置相关代理,访问:
安装路径:
/usr/local/nginx/
nginx.conf配置文档如下:
#nginx版本nginx1.14.x不要使用高版本,如:
1.16
#usernobody;#指定nginx用户,一般重新创建一个新用户给nginx
worker_processes8;##worker_processes8;工作进程:
数目。
根据硬件调整,通常等于CPU数量或者2倍于CPU。
;cat/proc/cpuinfo|grep"cpucores"|uniq
error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events{
worker_connections102400;##这里原来是1024,现在后面多家两个0;每一个进程打开的最大连接数;最大连接数=worker_processes*worker_connections/4
multi_accepton;#可以一次建立多个连接
useepoll;#IO多路复用方式
}
http{
includemime.types;
default_typeapplication/octet-stream;
client_max_body_size500m;#设置1:
设置上传大小Sven
server_tokensoff;#设置2隐藏http响应头里面显示nginx版本号,防止别人根据版本漏洞进行攻击
##设置3
###start设置允许跨域,在这里设置了,就不用在java代码设置了:
CrossOrigin####
###一般不要设置*,设置*容易遭到跨站点cros攻击,最好只设置运行访问的外部网站
add_headerAccess-Control-Allow-Origin*;
add_headerAccess-Control-Allow-HeadersX-Requested-With;
add_headerAccess-Control-Allow-MethodsGET,POST,PUT,DELETE,OPTIONS;
###end###
#设置4:
获取客户端ip地址Sven
proxy_set_headerX-Real-IP$remote_addr;##获取客户端的真实ip,如果不加,就会代理服务器内网的ip
proxy_set_headerHost$host:
$server_port;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;##防止客户端多层代理,获取不到真实的ip,Forwarded可以获取到ip,代理ip1,代理ip2...,整个请求过程的所有ip
#设置5:
速率限制+并发限制
#http:
//nginx.org/en/docs/搜索:
limit
####limit_req_zone用来限制单位时间内的请求数,即速率限制,采用的漏桶算法"leakybucket"。
####limit_req_conn用来限制同一时间连接数,即并发限制。
###mylimit_req_name1:
是自己给规则起的名称,可以随便起,
###$binary_remote_addr是基于客户端ip,
###如果超过限制:
Responsecode:
429、Responsemessage:
TooManyRequests
###如果超过限制:
Responsecode:
503、Responsemessage:
ServiceTemporarilyUnavailable;服务器临不可用,服务器限流了
###_status可以自定义超过限流的状态码
limit_req_zone$binary_remote_addrzone=mylimit_req_name1:
10mrate=800r/s;###生成一个名字mylimit_req_name1的内存区域大小10MB,用来存储访问的频次信息。
80QPS单个ip
limit_reqzone=mylimit_req_name1burst=5nodelay;##QBS大于阀值,请求排队个数(burst),排队的请求,nodelay(立即执行)
limit_req_status429;
#---
limit_conn_zone$binary_remote_addrzone=mylimit_conn_name1:
10m;##生成一个名字叫做mylimit_conn_name1的内存区域是10m的连接限制
limit_connmylimit_conn_name1200;##单个ip限制连接数,这里20个
limit_conn_status428;
#设置5:
开发阶段,禁止缓存。
把下面代码打开,每次请求都是最新的文件。
#比如,可以自己写一个txt文件,使用微信打开,添加点内容。
然后微信在打开,就可以看到效果。
#注意,不要和expires1d;冲突设置
add_headerCache-Controlno-cache;
add_headerPragmano-cache;
add_headerExpires0;
##设置6:
504报错解决,完美解决Nginx504Gatewaytime-out
fastcgi_connect_timeout300s;
fastcgi_send_timeout300s;
fastcgi_read_timeout300s;
#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
#'$status$body_bytes_sent"$http_referer"'
#'"$http_user_agent""$http_x_forwarded_for"';
#access_loglogs/access.logmain;
##默认写日志:
打开文件写入关闭,max:
缓存的文件描述符数量,inactive缓存时间,valid:
检查时间间隔,min_uses:
在inactive时间段内使用了多少次加入缓存
#open_log_file_cachemax=200inactive=20svalid=1mmin_uses=2;
#只有开启了sendfile,tcp_nopush才起作用
#tcp_nodelay和tcp_nopush互斥,二者同时开启,nginx会:
(1)确保数据包在发送给客户端之前是满的
#
(2)对于最后一个数据包,允许tcp立即发送,没有200ms的延迟
#tcp_nodelayon;
#sendfileon;
#tcp_nopushon;
#与浏览器的长连接
keepalive_timeout1000;#长连接超时时间
keepalive_requests500;#500个请求以后,关闭长连接
keepalive_disablemsie6;#ie6禁用
#开启GZIP压缩功能压缩级别(gzip_comp_level),1~10,数字越大压缩的越好,时间也越长,看心情随便改吧;但是越大不一定压缩一直增加
gzipon;
gzip_min_length2k;
gzip_buffers416k;
gzip_comp_level5;
gzip_typestext/plainapplication/x-javascriptapplication/javascripttext/cssapplication/xmlapplication/jsontext/javascriptapplication/x-httpd-phpimage/jpegimage/gifimage/pngimage/svg+xml;
gzip_varyoff;
gzip_disable"MSIE[1-6]\.";
gzip_staticon;#如果有压缩好的直接使用
underscores_in_headerson;
##########################################
##缓存相关还没开启proxy_cache_path
##########################################
#Nginx做负载均衡的几种轮询策略
#ip_hash;每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
#ip_hash:
❗️❗️❗️问题,可能一台服务器挂掉了,就部分用户一直访问不了的;建议使用redis解决session问题;不推荐使用
#RR;默认每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
#weight和访问比率成正比,用于后端服务器性能不均的情况。
#server192.168.1.10weight=1;
upstreamtomcat{
#ip_hash;
server127.0.0.1:
8080weight=2;
server127.0.0.1:
8081weight=1;
keepalive2000;
}
###强制访问让http访问重定向到htts$$$$$
server{
listen80;
server_name;
rewrite^(.*)$1permanent;
#解决少输入一个斜杠导致的页面无法正常访问的问题;比如,客户输入的地址是:
https:
//www.weddinglove.xyz/hunqing,但是少输入了一个/斜杠导致,这个index.html里面的js和图片全部访问路径错误,要如何配置可以直接重定向到带有斜杠的页面
#具体解决请查看:
#^是正则的开始,$表示正则的结束
#rewrite^/hiber/hiber/permanent;
###~符合正则匹配
###~*符合正则匹配,判断时候不区分大小写
###!
~不符合正则匹配
###!
~*不符合正则匹配,判断时候不区分大小写
#if($http_host!
~"^(.*)sportpartner$"){
#rewrite^(.*)$1permanent;
#}
}
############################婚庆项目配置方式START#######################
####1:
强制使用了https使用了`error_page497https:
//$host$uri?
$args;`配置
####2:
强制使用www这个二级域名,非www重定向到www`rewrite^(.*)https:
//www.weddinglove.xyz$1permanent;`使用301永久重定向
####3:
删除了原来80端口的配置,80和443同时写到一个server里面
####4:
HTTPSserver证书配置
####4:
说明:
比如和都是二级域名,即:
www就是二级域名
#######################################################################
#server可以配置成多个,每一个都可以配置成为不同的域名。
如:
测试服务器可以同时是:
域名;域名,两个域名首页还完全不一样。
server{
listen80;
listen443;#阿里云端口必须打开
server_namejl-;
##SSL每一项配置含有说明、启用免费证书
sslon;
##SSL优化,SSL安全,但是也有弊端;ssl握手的时候,需要增加和服务器的链接;这里开启缓存,减小影响
ssl_session_timeout10m;#SSLsession会话有效期10分钟http:
//nginx.org/en/docs/http/ngx_http_ssl_module.html
ssl_session_cacheshared:
SSL:
20m;##session缓存到服务器,大小10MB,一兆字节可以存储大约4000个session
##linx
#ssl_certificate/usr/local/nginx/cert/full_chain.pem;##说明:
这个文件是:
证书+CA证书两部分合起来的文件,发现有两段
#ssl_certificate_key/usr/local/nginx/cert/private.key;##说明:
key是私钥private.key
##windows这里全路径
ssl_certificateD:
\\freessl\\full_chain.pem;##说明:
这个文件是:
证书+CA证书两部分合起来的文件,发现有两段
ssl_certificate_keyD:
\\freessl\\private.key;##说明:
key是私钥private.key
ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:
ECDHE:
ECDH:
AES:
HIGH:
!
NULL:
!
aNULL:
!
MD5:
!
ADH:
!
RC4;
ssl_protocolsTLSv1TLSv1.1TLSv1.2TLSv1.3;#禁用TLS1.0TLS(PCIDSS合规判定)v1.0或更早的加密协议将会判定为不合规;TLSv1
ssl_prefer_server_cipherson;
#让http请求重定向到https请求
error_page497https:
//$host$uri?
$args;
#proxy_passhttp:
//tomcat/;
#charsetkoi8-r;
#access_loglogs/host.access.logmain;
#重定向301永久重定向
#只是一级域名“”跳转到去。
强制使用www二级域名承联官网项目
#学有惠nginx没有做这个配置,并且可以自动跳转到www;其实是错误的:
不使用www根本访问不了;可以pingxueyouhui.top根本无法ping通;必须pingwww
#简而言之:
域名绑定的是www.xueyouhui.top这个二级域名
##permanent永久重定向301;redirect:
临时重定向302;break停止;last:
停止,并访问一次转发后地址;
##^:
以xx开头、()表示一个变量,后面用$1替换,.*正则
#将所有的http请求通过rewrite重写到https上即可
#rewrite^(.*)$https:
//$host$1permanent;
if($http_host~"^jl-$"){
rewrite^(.*)https:
//www.jl-$1permanent;
rewrite^/mall$/mall/permanent;##自动增加一个斜杠
}
##1:
nginx官网文档http:
//nginx.org/en/docs/
##2:
nginx之location的匹配规则
location/{
roothtml;
indexindex.htmlindex.htm;
proxy_passhttp:
//tomcat;
#rewrite^/$/hiber/;#rewrite根目录重定向到子目录下面去,默认是redirect301;
#rewrite^/ourspro/book/permanent;#rewrite301
}
###代理演示
#location~^/baidu{
##proxy_passhttp:
//tomcat/baidu/;##代理到upstream资质
##proxy_passhttp:
//47.92.231.114/baidu;##代理到固定ip
#rewrite^/baidupermanent;##302永久重定向;
#}
#对应的目录也里面的子目录也必须是:
/hiber/upload所有的图片不走tomcat,直接使用nginx进行访问了
#location~*^.+\.(gif|jpg|png|swf|flv|rar|zip)${
location/hiber/upload{
##缓存时间1d,或者24h,添加这;responseheader增加:
Cache-Control:
max-age=6400、增加:
Expires:
Sun,07Jul201907:
25:
00GMT
expires10d;
####防盗链根据referers[从那个网站过来的访问]信息来处理$http_referer
###http:
//nginx.org/en/docs/http/ngx_http_referer_module.html文档首页搜索:
referer
###
###none允许没有refefer连接,可以直接访问。
###blocked意为根据防火墙伪装Referer头,如:
“Referer:
XXXXXXX”。
###server_names为一个或多个服务器的列表
###微信小程序referer校验"
###测试(-e后面的参数就是referer参数):
curl-e""-Ihttps:
//www.jl-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 开发 部署 文档