SpringBoot项目(六)部署

作者:陆金龙    发表时间:2019-07-19 18:41   

关键词:springboot部署  nginx静态资源映射  nginx防盗链  防止另存为下载图片  移动设备的访问重定向到M站  

6.0 域名准备

6.1 web工程部署

(1)生成jar包

在klcms-parent的pom.xml上右键run as-> maven install生成jar包。

在C:\Users\Administrator\.m2\repository\com\klfront\klcms\klcms-web\1.0.0-RELEASE下找到klcms-web-1.0.0-RELEASE.jar,重命名为klcms.jar

(2)上传到服务器,启动

将jar包拷贝到服务器上,使用java -jar xxx/klcms.jar命令启动服务

使用nohup命令启动程序。

用途:不挂断地运行命令,同时把程序运行的输出信息放到当前目录的nohup.out 文件中去。

语法:nohup Command [ Arg ... ] [ & ]

cd /usr/soft

nohup java -jar klcms.jar &

 

如果失败,需要重新启动。可以先根据端口号查询进程并杀死进程,然后再重新执行以上命令。

netstat -lnp |grep 8081

tcp6       0      0 :::8081         :::*         LISTEN      11749/java

kill -9  11749

6.2 nginx配置静态资源映射

nginx 启动方法:

cd /usr/local/nginx/sbin/

./nginx  #启动

 

将静态资源拷贝到服务器上,使用nginx做目录映射。

注意:Linux下区分大小写。

 server {

        listen       80;

        server_name  iprogram.com.cn;

        # 让访问 /upload/images/ 路径时,映射到/home/public/upload/images下

        location /upload/images/ {

            root /home/public/;

            autoindex on; #打开目录浏览功能

       }

   

        # 让访问 /Upload/Images/ 路径时,映射到/home/public/upload/images下

        location /Upload/Images/ {

            alias /home/public/upload/images/;

            autoindex on; #打开目录浏览功能

       }

 

        location / {

            proxy_pass http://127.0.0.1:8081;

            proxy_connect_timeout 300s;

            proxy_send_timeout 300s;

            proxy_read_timeout 300s;

       }

    }     

6.3 nginx配置图片防盗链

 server {

       listen       80;

       server_name  www.iprogram.com.cn;

       location / {

            proxy_pass http://127.0.0.1:8081;

            proxy_connect_timeout 300s;

            proxy_send_timeout 300s;

            proxy_read_timeout 300s;

       }    

  

        location ~ \.(jpg|png|gif|jpeg)$ {

           valid_referers www.iprogram.com.cn;

                if ($invalid_referer) {

                     # return 403;

                     rewrite ^/ http://error.iprogram.com.cn/error/copyright.png;

                }

        }

}

return 403; #响应403错误

rewrite ^/ http://error.iprogram.com.cn/error/copyright.png; #重定向到一个防盗链的图片

例如下图:

问题:防盗链设置导致调试时图片无法正常显示了

原因1.使用了反向代理引起的

在防盗链配置中添加proxy_pass http://127.0.0.1:8081;

        location ~ \.(jpg|png|gif|jpeg)$ {

           valid_referers www.iprogram.com.cn;

                if ($invalid_referer) {

                 # return 403;

                 rewrite ^/ http://error.iprogram.com.cn/error/copyright.png;

                }

                proxy_pass http://127.0.0.1:8081;

        }

经过上述修改后,web站点下的图片资源可以访问了。

原因2.nginx配置映射的静态资源

但是web站点外的其他目录下的图片,原来通过nginx配置映射提供访问的,仍旧不能访问。

因此,尝试将防盗链的配置写到静态目录映射的内部。如下加粗部分:

       

        location /Upload/Images/ {

             # 配置防盗链

            valid_referers iprogram.com.cn;

            if ($invalid_referer) {

                 rewrite ^/ http://error.iprogram.com.cn/error/copyright.png;

                 break;

            }

             # 让访问 /Upload/Images/ 路径时,映射到/home/public/upload/images下

            alias /home/public/upload/images/;

            autoindex on; #打开目录浏览功能

        }

6.4 防止右键另存为下载图片

<!-- 彻底屏蔽鼠标右键 oncontextmenu="event.returnValue=false" -->

<body oncontextmenu="window.event.returnValue=false" >

oncontextmenu="event.returnValue=false"

或 oncontextmenu="self.event.returnValue=false"

或 oncontextmenu="window.event.returnValue=false"

6.5 将移动设备的页面访问重定向到m站

server {

        listen       80;

        server_name  www.iprogram.com.cn;

   

        # 让访问 /Upload/Images/ 路径时,映射到/home/public/upload/images下

        location /Upload/Images/ {

            alias /home/public/upload/images/;

           autoindex on; #打开目录浏览功能

        }

        location /upload/images/ {

            alias /home/public/upload/images/;

           autoindex on; #打开目录浏览功能

        }

 

        location / {

            if ($http_user_agent ~* "^(.*android.*)|(.*iphone.*)|(.*windows phone.*)$") {

                rewrite ^ http://m.iprogram.com.cn redirect;

                break;

            }

            proxy_pass http://127.0.0.1:8081;

            proxy_connect_timeout 300s;

            proxy_send_timeout 300s;

            proxy_read_timeout 300s;

       }    

  

        location ~ \.(jpg|png|gif|jpeg)$ {

           valid_referers www.iprogram.com.cn;

                if ($invalid_referer) {

                 rewrite ^/ http://error.iprogram.com.cn/error/copyright.png;

                }

        }