- 浏览: 34358 次
-
最新评论
文章列表
为了服务器安全,防止被入侵,除了加强密码之外,还可以监控服务器的登陆情况
把登陆日志记下来,当然系统也会有记录,但不排除被人删掉,所以把数据发送到另外一台服务器比较保险,避免被删除
在linux下面很简单,只需要在/etc/ssh/目录下面创建一个sshrc的文件,然后给它执行权限,那么在有人通过ssh远程登录这台服务器的时候,这段脚本就会被执行
代码如下:
#!/bin/bash
#获取登录者的用户名
user=$USER
#获取登录者的IP地址
ip=${SSH_CLIENT%% *}
#获取登录的时间
time=$(date +%F%t%k:%M)
#服务器的IP地址
ser ...
- 2016-12-09 00:28
- 浏览 699
- 评论(0)
出于安全原因,我们需要监控服务器上面的文件修改情况
这里用到一个很有用的工具就是inotifywait
安装命令
$ apt-get install inotify-tools
安装完之后,写一个脚本监控我们想要监控的目录,并且把监控到的内容输出到日志文件
watch.sh 脚本
#!/bin/bash
inotifywait -rme create,modify,move,delete /usr/local/tomcat/webapps/ -o /logs/w.log
我这里主要监控文件夹下面的文件创建、修改、移动、删除事件,然后把日志输出到文件w.log
启动命令
n ...
- 2016-12-09 00:17
- 浏览 388
- 评论(0)
公司有一个项目是php的,为了统一开发、测试环境,想要用docker构建了一个php-fpm镜像,经过一番折腾,镜像构建完成。
此镜像为基于php:5.6.28-fpm
主要是安装了一些常用的拓展,如libpng、libjpeg、gd、mysql,还安装了xdebug,用于调试
可在linux/win10上使用
启动命令:
docker run -it --rm --name php -p 9000:9000 -v d:\work\www:/www -v d:\work\www\docker\php.ini:/usr/local/etc/php/php.ini 362228416/p ...
- 2016-12-09 00:01
- 浏览 511
- 评论(0)
前段时间,开发了一个供外部调用的api,领导说要限流,请求单个IP,每秒50读次,写10次
万能的nginx,几行配置搞定
# 先定义好规则,需要写在server外面
limit_req_zone $binary_remote_addr $uri zone=api_write:20m rate=10r/s; # 写
limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=50r/s; # 读
# 把需要限速的接口应用上上面的规则
# 写10/秒
location = /api/v1/trade {
...
- 2016-12-06 10:35
- 浏览 238
- 评论(0)
上一次上线只是简单的把手机端的流量切换手机端的首页,有点粗糙,现在需要把电脑端相应的页面切换到电脑端的页面,直接用nginx自带的rewrite不太好做,所以用lua做
下面开始代码
nginx 配置
location / {
rewrite_by_lua_file lua/mobile.lua;
... # 反向代理
}
mobile.lua代码
-- 手机访问重定向到移动版
local agent = ngx.var.http_user_agent
if agent ~= nil then
local m, ret = ngx.re.match(a ...
- 2016-12-06 10:23
- 浏览 442
- 评论(0)
最近有一个微信端要上,需要凌晨12点上线,不可能让我等到12点切流量吧,于是早早的配置好,回家睡觉
很简单,主要在nginx这层做点处理,就行了,废话不多说,直接代码
location / {
access_by_lua_block {
if ngx.time() >= 1480521600 then
local user_agent = ngx.var.http_user_agent
if user_agent ~= nil then
local m, ret = ngx.re. ...
- 2016-12-06 10:12
- 浏览 920
- 评论(0)
最近老是有用户说,页面打开慢,但是自己打开又很快,所以想统计一下用户打开网站的时间,当然这个统计有点粗糙,但是也能说明一点问题
实现原理很简单,就是在header里面保存一下用js保存一下当前时间,然后在body结束前面再加一段js,加载耗时(ms) = 用当前时间 - header里面的时间,就得到了这个页面加载大概需要的时间,主要是页面内容、CSS、js这些加载所花的时间,ajax这里不统计,知道原理之后就简单了
这是header里面加的
<script type="text/javascript">var loadTime = new Date(). ...
- 2016-12-05 20:58
- 浏览 388
- 评论(0)
废话不多说,直接代码。。。
内网:
$ ssh -R -N -f 10020:0.0.0.0:10022 root@110.110.110.110
外网
$ ssh -p 10020 localhost
$ # 尽情YY
说明:
11020 是远程连接到本机的端口,10022是本机开放的端口,root@110.110.110.110 这段其实就是 ssh 连接的服务器跟用户名,大致原理就是通过 ssh 创建一条隧道,并将远程服务器的10020端口转发到本机的10022端口,实现穿透效果,简单实用
<script type="text/java ...
- 2016-11-01 00:32
- 浏览 446
- 评论(0)
从去年开始,构建工具就从maven转向gradle了,servlet容器也从tomcat转向了jetty,直接使用内嵌的方式运行,然后用gradle打包成应用程序,直接启动bin目录下的运行文件即可运行,简单快捷。
首先说明一点,就是这种方式只适用于纯api项目,也就是无jsp,不然打包成jar会有问题。
项目框架 spring mvc + mybatis,数据库用mysql + redis,spring mvc 跟 mybatis 配置我就不多说了,主要介绍一下jetty的吧。
import com.alibaba.druid.support.http.WebStatFilter; ...
- 2016-10-31 23:38
- 浏览 840
- 评论(0)
背景
随着react的开源,facebook相继开源了很多相关的项目,这些项目在他们内部已经使用了多年,其中引起我注意的就是本次讨论的是graphql,目前官方只有nodejs版,由于很多公司的后台技术栈都是java,所以便有了graphql的java版实现,在github上可以找到,废话不多说,直接看代码吧,具体介绍还是去看官网吧,不然就跑题了。
GraphQLSchema
Schema相当于一个数据库,它有很多GraphQLFieldDefinition组成,Field相当于数据库表/视图,每个表/视图又由名称、查询参数、数据结构、数据组成.
1) 先定义一个数据结构(Grap ...
- 2016-03-11 12:06
- 浏览 393
- 评论(0)
使用docker安装gitlab
1、在mysql中创建一个用户
CREATE USER 'gitlab'@'%.%.%.%' IDENTIFIED BY '***gitlab***';
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON `gitlabhq_production`.* TO 'gitlab'@'%.%.%.%';
2、启动一个redis服务,不能带密 ...
- 2016-03-04 14:43
- 浏览 297
- 评论(0)
React-Native 开发的App, 所有组件ios & android 共用, 共享一份代码
包括一些自定义的组件, 如NavigationBar, TabBar, SegmentedControl, 使用字体图标, 具有一定的参考意义
主要专注于布局, 共享组件/代码, 以及一些React自带的组件, 如: ScrollView, TouchableOpacity, View, Text, ListView, Image, WebView 和 Api的使用,
这并不是一个完整版, 只是业余时间, 对web版的一个native化, 特共享出来, 供各位参考.
代码在git ...
- 2016-01-23 14:32
- 浏览 311
- 评论(0)
做负载均衡的时候,往往会遇到需要session同步的问题,方案很多,但是都有各种的缺点,最近发现spring-session项目,原理是将session保存到redis,来实现session同步,好处是不管增加多少个tomcat,都没有问题,做负载的时候,也不用考虑session问题,而且配置灰常简单,因为我们的项目就是用redis来缓存数据的,只需要添加两行配置即可
1、添加spring-session
<dependency>
<groupId>org.springframework.session</groupId>
<a ...
- 2015-12-11 16:58
- 浏览 390
- 评论(0)
1、很简单,直接用系统的定时任务,先写好脚本,然后定时调用就行了,备份数据库直接用的mysqldump命令,具体就不写了,然后运行命令
$ crontab -e
2、在最下面添加定时任务执行的时间即可,改完直接保存退出,立即生效
# 每天凌晨一点运行
0 1 * * * /task/backdb.sh
# 每十分钟执行一次备份
*/10 * * * * /task/backdb.sh
# 每三十分钟执行一次备份
*/30 * * * * /task/backdb.sh
<script type="text/javascript">
...
- 2015-12-11 16:41
- 浏览 315
- 评论(0)
1、首先第一步,肯定是下载,根据情况选择要下载的
地址在这里 https://github.com/Qihoo360/Atlas/releases
我下载的是Atlas-2.2-debian7.0-x86_64.deb
安装
$ dpkg -i Atlas-2.2-debian7.0-x86_64.deb
安装好之后在 /usr/local/mysql-proxy 目录下,其实这货是基于mysql-proxy开发的,添加了一些特性,安装的时候会有一些坑,启动不了,缺少lib,然后我有直接下载了官方的mysql-proxy,这里面包含了这货缺少的lib,可以直接复制到它的lib下面, ...
- 2015-09-26 20:57
- 浏览 250
- 评论(0)