JAVA开发部署文档(linux - centos7+)
1 jdk1.8+
首先确认电脑有没有安装jdk,查看jdk安装情况。
Java -version:
Whereis JAVA:
2 mysql
这里使用的是mysql
Whereis mysql: 查看mysql文件路径
查看mysql状态:
查看mysql版本:
mysql -umayahouse -p
输入密码:mayahouse
输入命令:select version();
如果没有安装mysql或者mysql安装失败,请自行在安装mysql
linux centos7 在 /etc/myf,编辑该文件,在最后面添加如下, 作用有
1:字符集使用UTF-8mb4
2:使得支持emoj表情
3:防止多表关联groupby出错
[mysqld]
nginx ssl证书配置# 服务端默认字符集
character-set-server=utf8mb4
# 连接层默认字符集
collation-server=utf8mb4_unicode_ci
#设置SQL模式,解决高版本group by 报错; 在5.7之后要设置,防止报错 “Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”
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,所有账户永不过期,单位是天,详见 blog.csdn/jc_benben/article/details/77934469
default_password_lifetime=0 #如果设置为零标识永不过期
#设置默认时区,为北京时间,东8区, 查看时区:show variables like "%time_zone%";
default-time_zone = '+8:00'
# 允许最大连接数
max_connections=2000
[client]
# 客户端来源数据的默认字符集
default-character-set = utf8mb4
[mysql]
# 数据库默认字符集
default-character-set = utf8mb4
修改之后记得重启mysql: service mysqld restart
3部署tomcat
解压tomcat8+到/usr/local/tomcat8/下面
进入tomcat的启动目录bin下,使用命令 ./catalina.sh run 或者 nohup ./startup.sh &
启动tomcat
如果不熟悉,请使用第一种启动方案,可以看到实时日志
tomcat相关配置:
注意,项目里面对tomcat 配置文件进行修改,这要改成
<Context docBase="../mayaUploadRoot/upload" path="/maya/upload" />
4 安装nginx
网络下载nginx-1.10.2,解压并安装到磁盘,配置相关代理,访问:
安装路径:/usr/local/nginx/
f配置文档如下:
#nginx版本 nginx 1.14.x不要使用高版本,如:1.16
#user nobody; #指定nginx用户,一般重新创建一个新用户给nginx
worker_processes 8; ## worker_ processes 8; 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 ;cat /proc/cpuinfo | grep "cpu cores" | uniq
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 102400; ##这里原来是1024,现在后面多家两个0;每一个进程打开的最大连接数; 最大连接数 = worker_processes * worker_connections/4
multi_accept on; #可以一次建立多个连接
use epoll;#IO多路复用方式
}
http {
include pes;
default_type application/octet-stream;
client_max_body_size 500m;# 设置1: 设置上传大小Sven
server_tokens off; #设置2 隐藏http响应头里面显示nginx版本号,防止别人根据版本漏
洞进行攻击
##设置3
###start 设置允许跨域,在这里设置了,就不用在java代码设置了:CrossOrigin ####
### 一般不要设置*,设置* 容易遭到跨站点 cros攻击,最好只设置运行 访问的外部网站
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
###end ###
# 设置4: 获取客户端ip地址 Sven
proxy_set_header X-Real-IP $remote_addr;##获取客户端的真实ip,如果不加,就会代理服务器内网的ip
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;##防止客户端多层代理,获取不到真实的ip,Forwarded可以获取到 ip,代理ip1,代理,整个请求过程的所有ip
# 设置5: 速率限制 + 并发限制 wwwblogs/biglittleant/p/8979915.html
# /en/docs/ 搜索:limit
#### limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 "leaky bucket"。
#### limit_req_conn 用来限制同一时间连接数,即并发限制。
### mylimit_req_name1 : 是自己给规则起的名称,可以随便起,
### $binary_remote_addr 是基于客户端ip,
### 如果超过限制:Response code: 429、Response message: Too Many Requests
### 如果超过限制:Response code: 503、Response message: Service Temporarily Unavailable; 服务器临不可用,服务器限流了
### _status 可以自定义超过限流的状态码
limit_req_zone $binary_remote_addr zone=mylimit_req_name1:10m rate=800r/s;### 生成一个名字mylimit_req_name1的内存区域大小10MB,用来存储访问的频次信息。80QPS单个ip
limit_req zone=mylimit_req_name1 burst=5 nodelay;##QBS大于阀值,请求排队个数(burst),排队的请求,nodelay(立即执行)
limit_req_status 429;
#---
limit_conn_zone $binary_remote_addr zone=mylimit_conn_name1:10m;##生成一个名字叫做 mylimit_conn_name1的内存区域是10m的连接限制
limit_conn mylimit_conn_name1 200;##单个ip限制连接数,这里20个
limit_conn_status 428;
#设置5:开发阶段,禁止缓存。把下面代码打开,每次请求都是最新的文件。
#比如,可以自己写一个txt文件,使用打开,添加点内容。然后在打开,就可以看到效果。
#注意,不要和 expires 1d; 冲突设置
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
##设置6:504报错解决,完美解决Nginx 504 Gateway time-out
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
# log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论