Java学习笔记(三)——通过域名访问Java网站

背景:jar包 + Linux服务器
目标:外网可以直接通过域名访问Java网站

1、环境安装

  • 下载jdk
    下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • 解压下载文件
    tar xzf 下载文件名
  • 配置环境变量
    vim ~/.profile
    在文件最后加入
JAVA_HOME=JDK地址
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 
PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH

先输入i进入编辑状态,退出时先按Esc,再输入:wq!,保存退出

  • 更新变量
    source ~/.profile

2、java使用进程运行

  • 创建shell文件
    创建:stop.sh
#!/bin/bash
PID=$(ps -ef | grep 包名.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

创建:start.sh

#!/bin/bash
nohup java -jar 包名.jar --server.port=端口 &

创建:run.sh

#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh

1、没有权限,使用chmod u+x *.sh赋予权限
2、如果在windows系统创建,需使用dos2unit 文件名.sh将文件unix化

  • 运行
    使用./run.sh运行
  • 查看执行情况
    cat nohup.out

如果执行成功可以使用http://服务器IP:端口/页面地址访问网站

3、使用nginx进行转发

  • nginx安装
    网络上安装教程很多,可以参考:https://www.cnblogs.com/sz-jack/p/5200283.html
  • nginx配置
server
    {
        listen 80;
        server_name 域名 ;
        index index.html index.htm index.php default.html default.htm default.php;
        # 静态资源进行转发,因为打包时一起打包在jar包内
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            proxy_pass http://域名:端口;
            expires      30d;
        }
        # 静态资源进行转发,因为打包时一起打包在jar包内
        location ~ .*\.(js|css)?$
        {
            proxy_pass http://域名:端口;
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        location / {
            proxy_pass http://域名:端口;
        }
    }

如果需要https访问,则需要证书,配置可以参考

server
    {
        listen 80;
        #listen [::]:80;
        server_name 域名 ;
        index index.html index.htm index.php default.html default.htm default.php;
        return 301 https://$server_name$request_uri;
    }

访问域名时,直接跳转https,其它在https配置中进行配置,如默认页面,静态资源访问,可以参考非http访问配置

4、后记

本人方法可能不是最优的,但是至少可以实现要求,如果其它有更好的方法,欢迎留言探讨。

你可能感兴趣的:(java)