SpringBoot项目(六)部署
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;
}
}
}