一个没有技术只会增删改查的后端
nginx配置文件分开配置

在Linux中不同的用户都可能用到Nginx,如果不同的用户无法达成一个对nginx.conf编写标准,势必会导致nginx.conf里的内容变的相当混乱,极难维护。所以这里建议新建一个文件夹,这个文件夹中分放不同用户所需要反向代理的配置文件。

nginx.conf 文件尽量不做修改,只需在最末尾加上 include conf.d/*.conf;

nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#user  nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

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 logs/access.log main;

# upload file max size
client_max_body_size 300m;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}

#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;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

# 各个域名单独控制
include conf.d/*.conf;

}

在conf.d文件中放入不同用户的conf文件。

解决Springboot AOP切面切在Service无效问题!【巨坑】

前言

如题,最近开发时,遇到一个很坑的问题,配置了切面,切点设置在service的实现类中,但实际测试切面对某个service无效,这个问题断断续续,卡了我好多天。

要是选其他的service做测试还好,但好死不死,我选来做测试的这个service在Shiro realm中 通过@Autowrid 注入的,如下图,其他service都可以用。

image

通过几番查找资料排查问题,网上说是shiro和Aspect互相冲突导致,在shiroRealm注入的service再新增延迟加载注解@Lazy就可以,经过我实际测试,确实可以。

chrome浏览器不支持audio和video标签的autoplay自动播放解决方案

前言

音频audio和视频video无法自动播放这个在IOS上面一直是个惯例。

桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在2018年4月份发布的Chrome 66开始也正式关掉了声音自动播放,也就是说在Safari、Chrome、opera浏览器中音频audio和视频video自动播放功能都将失效。

解决方案一(已失效)

在chrome 浏览器中输入: chrome://flags ,搜索 Autoplay policy ,默认为 Default ,修改为 No user gesture is required 就可以了。

Windows获取System权限

众所周知,Linux操作系统的最高权限是root权限,通过su -等命令即可获取root权限。而Windows系统也具有Administrator管理员权限,常用的操作使用管理员权限即可。但实际上Windows系统最高级别的权限是System用户权限,有一些操作需要System权限才能完成,比如修改注册表核心键值、强制结束恶意应用程序进程等。这些需求对于极客们来说还是比较常见的。笔者先前比较常用的工具有PChunter、PowerTools等等,但是随着Windows系统的不断更新,这些工具因不被Windows官方支持而渐渐失效。

PSTools

下面介绍一款支持在Windows当前最新版(Windows 10 Pro Version 1803)能够使应用程序获得System权限的工具,PSTools。如果链接失效,点此备用链接

用法

以管理员身份启动cmd,使用以下命令即可以System用户启动任务管理器。

Vue项目阻止浏览器返回事件

Prevent Browser Back for Vue2.

模拟阻止(适用于PC,移动端):在需要阻止浏览器返回上一页的页面使用次插件,当点击浏览器返回上一页时使页面不做任何变化。

Install

1
npm install vue-prevent-browser-back --save

Usage

记一次SQLServer服务器CPU占用100%

1. 前置说明

1
2
select *
from test where Udt>=DATEADD(minute,-10,getdate())

数据库大约有七百万数据.

针对Udt字段建立了聚合索引.

由于业务需求,使用游标调用上面SQL.循环约20次.

vue-router query和params传参(接收参数)$router $route的区别

1. query方式传参和接收参数

1
2
3
4
5
6
7
8
9
10
传参:
this.$router.push({
path:'/xxx',
query:{
id:id
}
})

接收参数:
this.$route.query.id

注意:传参是this.$router,接收参数是this.$route,这里千万要看清了!!!

2. params方式传参和接收参数

1
2
3
4
5
6
7
8
9
10
传参:
this.$router.push({
name:'xxx',
params:{
id:id
}
})

接收参数:
this.$route.params.id
vue-cli 3.x配置跨域代理

由于3.x的默认配置都转移到了CLI service里,所以生成的项目中并没有配置项,我们如果需要自定义一些项目配置,则需要自己在项目的根目录(root)创建一个vue.config.jsvue.config.js里的配置项所有都是可选的,这就避免了我们去看一大堆不必要的默认配置,只需要配置自己需要的部分就行了。【官方文档】

用Notepad2替换系统自带的Notepad

Windows XP替换方法

  1. 先将Notepad2.exe重命名为notepad.exe
  2. 进入C:\windows\system32\dllcache这个目录(dllcache目录是隐藏的),删除掉notepad.exe,同时删除掉C:\windows\system32下的notepad.exeC:\windows下的notepad.exe(速度要快,不然后面不会成功!)
  3. 最后,把重命名好的notepad.exe分别复制到c:\windows\system32c:\windows目录。这样做会弹出Windows 文件保护对话框,此时请选择“取消”后再点“否”即可。

Windows 7替换方法

  1. 先将Notepad2.exe重命名为notepad.exe
  2. 开始-运行-输入%SystemRoot%,找到notepad.exe,右键-属性-安全-高级-更改所有者-更改权限,使当前用户对notepad.exe完全控制权限。将重命名好的notepad.exe替换掉目录中的notepad.exe
  3. 开始-运行-输入%SystemRoot%\system32,然后重复第2步进行替换

Windows 10替换方法

Gitment:使用 GitHub Issues 搭建评论系统

简介

Gitment是imsun实现的一款基于 GitHub Issues 的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面。

本博客评论系统已迁移至 Gitment。虽然 Gitment 只能使用 GitHub 账号进行评论,但考虑到博客受众,这是可以接受的。

原作者搭建的解决 跨域 cors 的服务由于证书到期,无法正常登陆。由本站作者进行修改,重新发布。由于实现跨域的方案有所不同。所以将修改后的代码重新发布。

项目地址