java web应用部署+配置域名解析访问+ssl证书配置
一、需求说明
本人日常开发java web应用,采用jfinal框架,undertow进行部署
二、用到的工具
1.阿里云轻量应用服务器 2.阿里云申请的域名,需要备案,本人申请的ucool.tech域名已备案 3.阿里云上购买的免费ssl证书 4.服务器上安装好nginx
三、部署流程
1.jfinal+undertow打zip包上传到服务器,然后启动,此时可以通过ip:port访问到部署的应用,如果失败,请检查防火墙配置,开放应用端口即可,假设我这个应用占用的端口为12345 阿里云服务器配置防火墙如下 2.阿里云云解析DNS配置域名解析到服务器的ip 此时通过此二级域名可以访问到服务器的80端口 3.接下来要让这个域名能够访问到我们的应用 以ubuntu16.0.4为例,使用apt-get install nginx后配置文件在/etc/nginx/sites-avaliable下的default 编辑default增加
server {
listen 80;
server_name test.ucool.tech;
location / {
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_pass http://0.0.0.0:12345; #映射到本地端口。
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存文件重启nginx,再次到浏览器上输入这个域名,就能访问到web服务了,即test.ucool.tech=ip:12345 4.如果不需要https访问,配置到这里就可以结束了,后续开发的应用重新部署只需重复第一部即可 5.如果需要https协议,先到阿里云的ssl证书处购买 购买成功后为之前解析的二级域名配置此证书 等待审核通过后,即可下载证书 下载好的压缩包上传到nginx的cert目录下 我的服务器为/etc/nginx/cert目录 上传成功后打开nginx的配置文件加入如下内容
server {
listen 443 ssl;
server_name test.ucool.tech;
ssl_certificate cert/XXXX9_test.ucool.tech.pem;
ssl_certificate_key cert/XXXX9_test.ucool.tech.key;
ssl_session_timeout 600m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_pass http://0.0.0.0:12345; #映射到本地端口。
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
