部署springboot项目并使用Nginx置域名

2020-08-04  本文已影响0人  Tsnow308

使用maven打jar包
1.pom.xml 使用jar包方式打包

<groupId>com.summer</groupId>
<artifactId>gk</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

2.配置资源过滤:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹,
              注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件,
              如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>

            <!--将resources目录下的配置文件编译进classes文件  -->
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <encoding>utf-8</encoding>
                        <useDefaultDelimiters>true</useDefaultDelimiters>
                        <nonFilteredFileExtensions>
                            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
                            <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
                            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
                            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
                            <nonFilteredFileExtension>svg</nonFilteredFileExtension>
                        </nonFilteredFileExtensions>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

3.使用IDEA的maven工具进行 clear 和 package


image.png

先 clear 再 package 出现BUILD SUCCESS就是打包成功了。

Building jar 是jar包的路径


image.png

4.我们进入cmd使用指令运行我们的jar包,检查是否能成功访问。

java -jar gk-0.0.1-SNAPSHOT.jar

页面访问成功!


image.png

拿到jar包访问成功我们第一阶段完成。

服务器环境准备 准备jdk,Nginx,MySQL
1.建议小白安装宝塔

Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2.使用宝塔安装tomcat8(tomcat8会自带jdk8的环境)

3.安装Nginx(待会配置域名)

4.安装MySQL(服务使用线上数据库,当然你在打jar包之前就要配置好数据库了)

运行jar包
1.将jar包上传到服务器上(哪里都行,你能找到就好)
2.使用命令云jar包

nohup java -jar yqjk-0.0.1-SNAPSHOT.jar

3.如果想查看运行日志就可以使用如下的命令

nohup java -jar yqjk-0.0.1-SNAPSHOT.jar >temp.txt &

查看运行日志

 cat temp.txt
image.png

这样我们就可以使用 IP地址+端口号来访问我们的服务啦!!!

如何关闭服务?
1.查看进程号

netstat -anp|grep 8888
image.png

2.杀死进程

kill -s 9  104373

配置域名
1.阿里或腾讯云里面把域名解析到服务器上

2.打开宝塔的Nginx


image.png

<meta charset="utf-8">

3.在Nginx的配置文件里面再加入一个server

主要修改如下几个参数:

 server {
        listen       80; #首先是nginx的监听端口默认为80
        server_name  xxxxx; #这里是你需要访问的域名地址
        #add_header 'Access-Control-Allow-Origin' '*';#这里是http 域名跨域,报错时候添加的请求头,这样写所有请求都会进来,会很不安全。
        #charset koi8-r;
        #access_log  logs/host.access.log  main;#这里是 日志文件的生成路径
        
        #详细介绍location
        location / {
            #是监听的端口默认访问的地址,这里如果没有做tomcat的转发则会进入nginx的html目录下的index.html
            root   html;
            
            #这里是编写监听到的请求所转发的端口号,即tomcat端口
            proxy_pass http://localhost:8888;
            #Proxy Settings;
            #proxy_redirect off;
            #proxy_set_header Host $host;
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            
            #设置nginx 的默认显示页
            index  index.html index.htm;

            #设置http请求的请求头,使其在跨域访问上不会被浏览器阻止。ps:这里设置我发现没有用,后来还是在ajax过滤器中添加的 请求头,如果大家有知道这里怎么修改的,请留言大家一起学习。
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

这样咱就可使用域名访问我们的服务啦

问题:

1.使用thymeleaf摸版引擎的th:replace在服务器上面出现的一种报错。


image.png

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Jul 10 14:09:04 CST 2020

There was an unexpected error (type=Internal Server Error, status=500).

Error resolving template [/commons/public], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "public/public-hot-news" - line 10, col 10)

在window系统下没问题。部署到linux下面出现这个问题

需要注意配置

spring.thymeleaf.prefix=classpath:/templates/
这里已经有斜线了 引入模板的时候不需要再加了

错误写法!!!!

<head th:replace="/common/head::head"></head>

正确写法!!!

<head th:replace="common/head::head"></head>

common为目录templates下面的

上一篇 下一篇

猜你喜欢

热点阅读