当前位置: 首页 > article >正文

云服务器Linux部署war、jar包,并在nginx配置域名

一,打包

Jar包

        一个Springboot项目默认打包jar包,无需修改配置,点击右侧Maven-Lifecycle-package打包即可

注意:

需要先检查pom.xml文件,可能此时打包完的jar包会出现

        no main manifest attribute, in test-0.0.1-SNAPSHOT.jar

        xxx.jar中没有主清单属性

        由于IDEA默认使用spring-boot-maven-plugin 插件,默认设置 <skip> 为true,这会导致 Spring Boot 插件跳过重新打包 JAR 文件的步骤,进而不生成包含 Main-Class 属性的清单文件。

解决办法:移除或注释掉即可

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.github.nan.web.NanWebApplication</mainClass>
                    <!-- <skip>true</skip> --> <!-- 移除或设置为 false -->
                </configuration>
            </plugin>
        </plugins>
    </build>

War包

        需要将pom.xml文件的packaging设置为war

<packaging>war</packaging>

如果使用tomcat启动服务,则需要排除tomcat的依赖。同时,添加servlet-api的依赖

    <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>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

         在build使用一下插件打包

 

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

        最后点击右侧Maven-Lifecycle-package打包即可

二,服务器环境部署

1.MySQL安装

       将安装包放到指定目录

Linux指令:

cd ..返回上一级

cd /xx/xx/xx 进入其中一个目录

mkdir xxx创建一个文件夹

下载某一版本安装包

        下载5.7版本

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

        下载8.0版本

 wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

安装下载好的安装包

sudo rpm -ivh mysqxxxxx.noarch.rpm

安装MySQL,出现的所有提示,y到底即可

 

输入指令确定是否安装好

 mysql -V

 

 MySQL命令

sudo systemctl start mysqld 启动MySQL

sudo systemctl start mysqld 查看MySQL运行状态

sudo systemctl reload mysqld 重启MySQL

sudo systemctl stop mysqld 关闭MySQL

取得MySQL初始化随机密码

grep "password" /var/log/mysqld.log 

 可以看到我们的初始密码是 l>KbWhk6K&+Y

登录MySQL

mysql -h 127.0.0.1 -u root -p

        输入刚刚获取的初始密码

 

        进入这个页面,代表mysql登入成功 

修改密码

update user set authentication_string=password("新密码")where user='root';修改密码

flush privileges;立即应用

exit;退出mysql

        重新登录MySQL,并输入新密码即可

跳过/忘记密码 

vim  /etc/my.cnf
按i进入编辑模式
最后一行加入   skip-grant-tables
点击esc,输入:wq保存并推出

重启mysqld
mysql -h 127.0.0.1 -u root -p    
 
直接回车进入mysql
修改密码即可

创建远程账户

         如果需要远程访问,还需要开通远程访问权限,否则将会报错

create user '新用户名'@'%' identified with mysql_native_password by '密码';
grant all privileges on *.* to '新用户名'@'%' with grant option;
flush privileges;

        MySQL安装完成,可以远程访问了

2.Java安装

下载

        在 Oracle 官网下载一个适用于Linux平台的JDK工具包【jdk-8u202-linux-x64.tar.gz】

Oracle Java Technologies | Oracle下载地址

         通过软件传入服务器中,我这里使用的是Xftp 8

        将安装包放入某个文件夹内

mkdir -p /xxx/java

解压到目录

tar -vzxf jdk-8u202-linux-x64.tar.gz

配置环境变量

1). 编辑/etc/profile文件,进入命令模式
  vim /etc/profile
2). 在命令模式中,输入指令 G , 切换到文件最后
  G
3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行
  i
4). 将上述的配置拷贝到文件中
  JAVA_HOME=/usr/local/jdk1.8.0_171
  PATH=$JAVA_HOME/bin:$PATH
  
5). 从插入模式,切换到指令模式
  ESC
  
6). 按:进入底行模式,然后输入wq,回车保存
  :wq

7). 刷新配置文件
  source /etc/profile 

检验是否安装成功

java -version

 

        出现这个代表Java安装成功

三.安装Tomcat

        记得检查JDK与Tomcat版本问题,版本不对应后续问题会很多

Apache Tomcat® - Welcome!下载地址

 

        上传到服务器任意文件夹,并进入文件夹

安装

tar -zxvf apache-tomcat-7.0.57.tar.gz -C 指定目录

cd 刚刚指定的目录/apache-tomcat-7.0.57/  进入Tomcat目录

        bin文件中包括Tomcat工具,包括启动,停止等

        conf文件包括Tomcat配置文件

        webapps文件存放war包,用于程序的启动

Tomcat启动与停止

cd bin/  进入工具包中

./startup.sh  启动Tomcat

./shutdown.sh  关闭Tomcat

         代表成功启动

配置

        如果想要修改Tomcat启动的端口号

进入conf目录下

cd conf/

打开server.xml文件

vim server.xm

找到Connector开头的代码,将后面的8080修改为任意端口号,只要你所修改的端口号没被其它应用占有,修改后保存。

        如果出现 The valid characters are defined in RFC 7230 and RFC 3986 问题

        增加以下配置

<Connector port="xxxx" protocol="HTTP/1.1" connectionTimeout="20000"
 relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;" 
 relaxedPathChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
 redirectPort="8443" />

 访问 http://你的ip:端口号可以访问Tomcat地址

        看到这个页面代表Tomcat成功安装了

四.Nginx安装

准备工作

1.先安装gcc-c++编译器

yum install gcc-c++
yum install -y openssl openssl-devel

2.再安装pcre包

yum install -y pcre pcre-devel


3.再安装zlib包

yum install -y zlib zlib-devel

进行nginx的安装

1.在/usr/local/下创建文件nginx文件

mkdir 任意位置/nginx


2.在网上下nginx包上传至Linux(https://nginx.org/download/),也可以直接下载

wget https://nginx.org/download/nginx-1.19.9.tar.gz


3.解压并进入nginx目录

tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9


4.使用nginx默认配置

./configure


5.编译安装

make
make install


6.查找安装路径

whereis nginx

Nginx位置一般为  /usr/local/nginx


7.进入sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行就OK了。

./nginx


9.查看是否启动成功

ps -ef | grep nginx

10.然后在网页上访问自己的IP就可以了默认端口为80(出现如下欢迎界面就成功了!)

Nginx命令

./nginx 启动

./nginx -s stop 停止

./nginx -s reload 重启

修改配置文件 

        配置文件位置   Nginx位置/conf/nginx.conf

        配置一般在此处修改

        修改完后,重启Nginx即可生效

五.部署服务

        至此所有准备已完成,可以开始部署服务了

War包

        移入Tomcat下webapps文件中,启动Tomcat即可部署服务

Jar包

        将jar包移入任意文件夹中,需要确定一个输出日志的位置

1.后台启动,不影响当前窗口的使用,日志在指定位置的文件内查看

nohup java -jar xxx.jar > 指定输出日志位置 2>&1 &
 

2.前台启动,只有结束当前程序后才能在使用此窗口,日志会直接显示在当前窗口

java -jar xxx.jar > 指定输出日志位置 2>&1 &

         至此服务启动完毕

六.Nginx配置

        如果需要配置域名,以及代理,需要配置一下内容     

 server {
        listen       80;        #监听端口
        listen       [::]:80;
        server_name  你的域名;
        #root         /xx;        #如果没有本地文件不用配置

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /xxx/ {        #如果80端口监听到带有/xxx就会转到部署的服务
            proxy_pass http://127.0.0.1:8080/;        #本地部署的服务地址
            # Proxy headers
            proxy_set_header Upgrade           $http_upgrade;
            proxy_set_header Host              $host;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_set_header X-Forwarded-Port  $server_port;
        }
    
    error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }

}

如果需要一个端口一个域名,监听多个服务

        增加一个location配置即可

 location /xxx/ {        #如果80端口监听到带有/xxx就会转到部署的服务
            proxy_pass http://127.0.0.1:8080/;        #本地部署的xxx服务地址
            # Proxy headers
            proxy_set_header Upgrade           $http_upgrade;
            proxy_set_header Host              $host;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_set_header X-Forwarded-Port  $server_port;
        }

location /yyy/ {        #如果80端口监听到带有/yyy就会转到部署的服务
            proxy_pass http://127.0.0.1:8081/;        #本地部署的yyy服务地址
            # Proxy headers
            proxy_set_header Upgrade           $http_upgrade;
            proxy_set_header Host              $host;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_set_header X-Forwarded-Port  $server_port;
        }

如果需要部署多个域名多个服务

        增加一个server即可

server {
        listen       80;        #监听端口
        listen       [::]:80;
        server_name  你的域名;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /xxx/ {        #如果80端口监听到带有/xxx就会转到部署的服务
            proxy_pass http://127.0.0.1:8080/;        #本地部署的服务地址
            # Proxy headers
            proxy_set_header Upgrade           $http_upgrade;
            proxy_set_header Host              $host;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_set_header X-Forwarded-Port  $server_port;
        }

}

server {
        listen       80;        #监听端口
        listen       [::]:80;
        server_name  你的另一个域名;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /yyy/ {        #如果80端口监听到带有/yyy就会转到部署的服务
            proxy_pass http://127.0.0.1:8081/;        #本地部署的服务地址
            # Proxy headers
            proxy_set_header Upgrade           $http_upgrade;
            proxy_set_header Host              $host;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_set_header X-Forwarded-Port  $server_port;
        }

}

如果需要 websocket

        需要添加location配置

location ~/websocket {
        proxy_pass http://127.0.0.1:8080/websocket;你的websocket访问地址
        # Proxy headers
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";  # 修正此行,确保正确处理连接升级
        proxy_read_timeout 600s;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
}

        至此服务已部署服务器


http://www.kler.cn/a/385874.html

相关文章:

  • 《应用数学学报》
  • 【Hadoop实训】Hive 数据操作②
  • 【Linux:epoll】
  • 企业生产环境-麒麟V10(ARM架构)操作系统部署kafka高可用集群
  • vue 获取摄像头拍照,并旋转、裁剪生成新的图片
  • Linux---常用shell脚本
  • express 使用JWT认证
  • 低空经济之星eVTOL研发技术详解
  • 越权访问漏洞
  • 基于MFC实现的赛车游戏
  • 大神狂秀技术 成功让三星手机用上macOS
  • 【hdfs】【hbase】【大数据技术基础】实践二 HBase Java API编程
  • 2024 CSS - 保姆级系列教程三 - 选择器与布局详解
  • 【MySQL】——数据库恢复技术
  • 数仓工具—Hive语法之窗口函数窗口范围/边界 range between和rows between
  • 黑马程序员Redis学习【持续更新】
  • 数据发生变化时(DOM)视图没有更新的原因及解决方案 - 2024最新版前端秋招面试短期突击面试题【100道】
  • 移动应用开发项目——图书影片管理系统【安卓项目|前后端】
  • Ubuntu /etc/sudo.conf is owned by uid 1000, should be 0 的一种解决方法
  • 掌握 .NET 8 中最小 API 的单元和集成测试:高质量代码的最佳实践
  • CTF —— 网络安全大赛
  • ABAP开发-12、Dialog屏幕开发_1
  • 设计模式-构建者
  • IO作业day4
  • redis:list列表命令和内部编码
  • jenkins使用slave节点进行node打包报错问题处理