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;
        }
    }
经验分享 程序员 微信小程序 职场和发展