IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java Linux下部署Springboot在任意文件夹或tomcat下并使用nginx代理实现域名访问 -> 正文阅读

[Java知识库]Java Linux下部署Springboot在任意文件夹或tomcat下并使用nginx代理实现域名访问

Springboot项?部署到linux文件夹或tomcat

1. springboot以jar包直接运行在linux任意文件夹


dea默认jar打包?式,直接使?maven?具按照步骤点击就可以直接打包
ps:打包前数据库相关的连接信息要修改,不能?本地


在这里插入图片描述

  • 第一步:打开Maven
  • 第二步:Maven clean :清除编译后的?录,默认是target?录
  • 第三步:Maven package:打包
  • 第四步:到target?录下找到 jar包
    在这里插入图片描述
  • 第五步:将jar包放到linux的任意?件夹(可访问)下
  • 输? java -jar ?件名.jar

不足在于终端关闭后,就不能访问了,隔?段时间后不能访问


1.1实现nohub方式运行

nohup java -jar ?件名.jar &
  1. nohup的意思不挂服务,常驻的意思,除?云服务器重启,那就没法了;
  2. 最后?个&表?执?命令后要?成?志?件
  3. nohup.out=出现:nohup: ignoring input and appending output to ‘nohup.out’
    正常情况,项目启动成功

2.spring boot 项目配置域名访问

  • 其实刚开始是我把这个想复杂了,域名解析直接解析到服务器公网就行了,然后域名加项目设定的端口号就可以访问了,
  • 我一直在想域名解析过来,服务器怎么绑定到项目的事,但是到这里好像瞬间懂了,域名解析前,公网ip加端口号是可以直接访问项目的,域名解析后域名加端口号也可以访问,那就说明这里域名代替了ip,通过不同端口实现访问不同项目,不加端口号是访问不到的。
  • 现在我不希望端口显示,我希望可以直接用域名就能访问到项目,剩下的可以用nginx做反向代理来实现了

2.1 nginx安装

  • 在/usr/local文件夹下创建nginx文件夹,用来存放安装包
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  • 安装c++
yum install gcc-c++
  • 安装ssl
yum install -y openssl openssl-devel
  • 安装pcre
yum install -y pcre pcre-devel
  • 安装zlib
yum install -y zlib zlib-devel
  • 安装nginx
wget https://nginx.org/download/nginx-1.19.9.tar.gz

跳转:更多版本Nginx下载地址

  • 安装过程依次执行下面命令
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9
make && make install
  • 运行ngins
#首先查找路径
whereis nginx
# 之后cd到nginx目录
./nginx
# 查看是否启动成功
ps -ef | grep nginx

  • 然后在网页上访问IP,默认端口为80
    出现下图
    在这里插入图片描述
    不成功,是nginx默认端口80没有开启
 #查看80端口是否打开:
firewall-cmd --zone=public --query-port=80/tcp
 # 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
 # 重启 firewall
  firewall-cmd --reload

2.2开启自启动nginx

修改 /etc/rc.d/rc.local文件

vim /etc/rc.d/rc.local

添加如下内容

user/local/nginx/sbin/nginx

退出保存
使/etc/rc.d/rc.local变成可执行文件

chmod +x /etc/rc.d/rc.local

重启服务

shutdown -r now

项目本地访问是localhost:8080,隐藏端口后就成了localhost,再用域名访问就是www.xxx.com,后面就不再出现端口号,nginx安装后默认就是隐藏端口号的,所以不需要修改,然后就是代理域名,这里我依旧遇到了问题,此时我们需要配置nginx


2.4 配置nginx

配置nginx的方法:首先要打开“/etc/nginx/conf.d/”文件夹;然后创建配置文件;接着在“/etc/nginx/nginx.conf”文件中修改配置项;最后重新启动nginx即可。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

Nginx (engine x) 也是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的

2.5 前后端nginx配置

  1. 打开 /etc/nginx/conf.d/文件夹,创建配置文件xxx.conf,内容如下:
server {
    listen 80;
    server_name **.106.2**.175;
    location / {
            root   /public/app/dist;
            index  index.php index.html index.htm;
    }
    location /sell {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   Host      $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass         http://127.0.0.1:8080;
        proxy_redirect off;
    }}
  1. 在 /etc/nginx/nginx.conf文件中有一行就是把刚刚配置的引进总的nginx配置中
include /etc/nginx/conf.d/*.conf;...
  1. 配置完成后重新启动nginx
nginx -t                         
# 查看nginx状态
nginx -s reload            
# 重新载入配置文件
nginx -s reopen           
# 重启 Nginx
nginx -s stop               
# 停止 Nginx
  1. 配置https
server {

        listen 443;
        server_name xx.name.com;
        ssl on;
        index index.html index.htm;
        ssl_certificate   cert/215079423330181.cert;
        ssl_certificate_key  cert/215079423330181.key;
        ssl_session_timeout 5m;
        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 / { 
           root   /public/app/dist;
           index  index.php index.html index.htm;
        }

        location /sell {
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   Host      $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass         http://127.0.0.1:8080;
            proxy_redirect off;
        }

   }

nginx.conf 默认文件

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
 
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    gzip on;
    gzip_static on;
    gzip_min_length 1024;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript   application/x-httpd-php application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    server {
         listen 443;
         server_name mp.hanxing.store;
         ssl on;
         index index.html index.htm;
         ssl_certificate   cert/cert_mp.hanxing.store.crt;
         ssl_certificate_key  cert/cert_mp.hanxing.store.key;
         ssl_session_timeout 5m;
         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 / { 
            root   /public/sell/app/dist;
            index  index.php index.html index.htm;
         }
         location /sell {
             proxy_set_header   X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header   Host      $http_host;
             proxy_set_header X-NginX-Proxy true;
             proxy_pass         http://127.0.0.1:8080;
             proxy_redirect off;
         }
         error_page 404 /404.html;
              location = /40x.html {
         }
         error_page 500 502 503 504 /50x.html;
            location = /50x.html {
         }
    }
}

3.部署到Linux下Tomcat服务器

1-2 介绍的部署方法使用Spring内置集成的tomcat环境,在一些情况:已经安装运行了tomcat,我们需要将项目部署到该tomcat服务器


运行环境打包方式
任意文件夹(内置tomcat)jar
tomcat文件夹war

3.1 maven-install-war包:

  • 在pom.xml中声明为war打包:
<packaging>war</packaging>
  • 禁用springboot中内置的tomcat,部署到外部的tomcat中
<!-- 排除内置tomcat容器,导出成war包可以让外部容器运行spring-boot项目-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  • clean、install项目
    在这里插入图片描述

  • 控制台会输出路径,然后我们找到war包,然后复制

  • 将war包上传服务器

  • 修改config下的server.xm


修改内容:将默认的8080端口改成80端口,这样就不需要输入访问端口了(80端口默认隐藏)
在这里插入图片描述
修改内容:2.localhost其改为域名(例如:liuyinian.wang)红色框为springboot应用在服务器上的绝对路径地址值
需要自己加

<Context docBase="/usr/***/software/tomcat/apache-tomcat-8.5.50/webapps/****your_project-0.0.1-SNAPSHOT" path="" reloadable="true" crossContext="true"/>

在这里插入图片描述
然后就可以重启服务器用域名进行访问了


参考1:百度文库
参考2:spring boot 域名访问
参考3:Linux配置tomcat、springboot 开机自启


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:25:27  更:2022-07-05 23:26:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:26:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码