本来是用 CentOS 的, 结果源里的 Tomcat 有 bug, 再这者源里 Tomcat 与 MariaDB 版本也都很低
阿里云相关配置
创建密钥对, 网络和安全 -> 密钥对 -> 创建密钥对, 按提示创建即可
更换实例系统盘, 换成 CentOS 7.4 64 位, 设置使用密钥登录而非密码
ECS 实例放行 Tomcat 的 8080 端口, 如果不放行结果就是进行请求时服务器无响应, 控制台选择对应 ECS -> 更多 -> 网络和安全 -> 安全组配置 -> 配置规则 -> 添加安全组规则 -> 规则方向为入方向, 端口范围为 8080, 授权对象为 0.0.0.0/0 -> 确定, 同样操作放行 8443 端口, 出方向默认全部开放, 无需配置
SSH 连接服务器,
SSH root@${IP} -p 22 -i ${PATH_TO_KEY_FILE}
, 如果同一个服务器多次更换系统盘后重新连接需要执行 SSH-keygen -R ${IP} 来更新密钥
系统配置
更新系统
# apt-get update && apt-get upgrade -y
, 提示本地文件修改过是否需要保留时选 install the package maintainer's version
安装 VIM 与 unzip
# apt-get install -y VIM unzip
修改 root 密码 # passwd
修改 SSH 端口, 查找 22, 该行应该是注释掉的, 反注释掉后修改为 Port ${PORN_NUM}, 重启 SSH
# systemctl restart sshd
添加一个新用户, 此处用户名为 seliote,
# useradd -m -s /bin/bash seliote
, 添加 sudo 权限 # visudo,root ALL=(ALL) ALL 下行添加
seliote ALL=(ALL) ALL
, 更新用户密码 # passwd seliote, 添加 SSH 登录密钥并更改所属用户
# cp -R ~/.SSH /home/seliote/ && chown -R seliote:seliote /home/seliote/.SSH
, 切换过去修改一下 .bashrc,# su - seliote,# VIM ~/.bashrc, 末尾添加以下内容
- alias ll='ls -lh --color=auto'
- alias grep='grep --color=auto'
- alias mariadb_console='mysql -u root -p'
- export JAVA_web_PATH="/var/lib/tomcat/webapps"
- PMT_ORANGE="\[$(tput setaf 3)\]"
- PMT_RESET="\[$(tput sgr0)\]"
- export PS1="${PMT_ORANGE}\u \A \w>>>${PMT_RESET}"
退出普通用户, 准备开始安装 Web 环境
安装 JRE, Tomcat, MariaDB
查找源里的 JRE
# apt-cache search jdk
, 这里用 openjdk-8-jre, 安装 JRE
# apt-get install -y openjdk-8-jre
查找源里的 Tomcat
# apt-cache search tomcat
, 这里用 tomcat8(吐槽 CentOS 的 7), 安装 Tomcat
# apt-get install -y tomcat8
查找源里的 MariaDB
# apt-cache search mariadb
, 这里用 mariadb-server-10.1(再吐槽 CentOS 的 5), 安装 MariaDB
# apt-get install -y mariadb-server-10.1
配置 Tomcat 与 MariaDB
Tomcat 与 MariaDB 开机自启
/lib/systemd/systemd-sysv-install enable tomcat8 && /lib/systemd/systemd-sysv-install enable MySQL
, 这里需要注意,
配置 Tomcat, 开启 Java 8 的支持,
# VIM /etc/tomcat/Web.xml
, 开启 Java 8 的支持, 查找
org.apache.jasper.servlet.JspServlet
, 下一行添加
- <init-param>
- <param-name>compilerSourceVM</param-name>
- <param-value>1.8</param-value>
- </init-param>
- <init-param>
- <param-name>compilerTargetVM</param-name>
- <param-value>1.8</param-value>
- </init-param>
查找 setCharacterEncodingFilter, 应该会匹配到两处, 一个是过滤器的声明, 一个是过滤器的映射, 两个节点全部反注释掉, 以设置默认的编码为 UTF-8
配置 MariaDB,
# mysql_secure_installation
, 按照提示按需配置
域名解析与 HTTPS
添加域名解析, 阿里云控制台域名列表, 选择解析, 添加记录, 记录类型为 A, 主机记录为 @ 以解析主域名, 解析线路默认即可, 记录值为 ECS 的 IP 地址, TTL 10 分钟即可, 按需添加其他解析记录
申请 SSL 证书, 点击全部产品, 安全, SSL 证书, 购买证书, Symantec, 免费型 DV SSL, 选择一个域名, 购买, 然后返回证书控制台, 点击 SSL 证书的申请, 证书绑定域名输入一级域名即可, 域名验证方式为自动 DNS 验证, CSR 生成方式为系统生成, 下一步, 验证, 提交审核, 等待验证完成
安装 SSL 证书, 签发完成后下载 SSL 证书, 下载 Tomcat 的版本, 将本地下载的 zip 文件上传至服务器
$ scp -P ${POST} -i ${PEM_FILE_PATH} ${CA_FILE_PATH} root@${SERVER_IP}:~/tomcat.zip
, 比如此处文件名为 tomcat.zip,SSH 到服务器, 解压该文件 # unzip tomcat.zip, 此处解压出 pfx 与 txt 两个文件, 切换到 tomcat 配置目录# cd /etc/tomcat8/, 创建一个存储证书的文件夹 # mkdir cert, 将 pfx 文件复制过来
# cp ~/seliote.com.pfx cert/
, 编辑 Tomcat 配置文件 VIM server.xml, 查找 8443,port 属性为 8443 的 Connector 节点应该是注销状态, 添加一个新节点
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
- maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="/etc/tomcat/cert/seliote.com.pfx" keystorePass="${解压出的 txt 文件中的内容}" />
开启 HTTP 自动跳转到 HTTPS,# VIM Web.xml, 根节点末尾前添加下面节点
- <security-constraint>
- <Web-resource-collection>
- <Web-resource-name>HttpsOnly</Web-resource-name>
- <url-pattern>/*</url-pattern>
- </Web-resource-collection>
- <user-data-constraint>
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
重启 tomcat
# systemctl restart tomcat8
来源: http://www.bubuko.com/infodetail-2892969.html