- 博客(287)
- 资源 (2)
- 收藏
- 关注
原创 golang中的数组与C中数组的区别
golang中的数组是这样说的: Arrays are values, not implicit pointers as in C.1、数组做参数时, 需要被检查长度.2、变量名不等于数组开始指针!3、不支持C中的*(ar + sizeof(int))方式的指针移动. 需要使用到unsafe包4、如果p2array为指向数组的指针, *p2array不等于p2array[0
2017-05-18 22:35:39 1658
原创 Nginx反向代理支持长连接
Nginx upstream与后端的连接默认为短连接,通过HTTP/1.0向后端发起连接,并把请求的"Connection" header设为"close"。Nginx与前端的连接默认为长连接,一个用户跟Nginx建立连接之后,通过这个长连接发送多个请求。如果Nginx只是作为reverse proxy的话,可能一个用户连接就需要多个向后端的短连接。如果后端的服务器(源站或是缓存服务器)处理并发连
2017-05-12 12:52:58 30802
原创 搭建samba服务器实现Linux磁盘或文件夹映射为 Windows网络磁盘
1、安装sambayum -y install samba samba-client samba-common2、配置sambacp /etc/samba/smb.conf /etc/samba/smb.conf.bak #备份vi/etc/samba/smb.conf在文件末尾添加:[Share]comment = Shared Folder with user...
2017-05-09 19:52:42 4071
原创 Golang编译程序从后台运行,不出现dos窗口
golang编译程序从后台运行,不出现dos窗口的方法如下:配置: go build -ldflags "-H windowsgui"lite IDE配置 菜单 编译→编译配置在“自定义”页面下的 BUILDAGRS 后添加 -ldflags "-H windowsgui"原文地址:http://www.fx114.net/qa-200-456949.aspx
2017-05-04 09:59:20 6959
原创 Golang一键启动程序(windows平台 部署 微服务)
golang编译程序从后台运行,不出现dos窗口参考:https://my.oschina.net/u/173303/blog/174124golang程序调用python脚本参考:http://www.th7.cn/Program/Python/201604/847613.shtmlgolang实现不受限制地随时升级服务的方法参考:http://www.js-code.com
2017-05-02 23:00:17 6226 1
原创 linux下php源码安装步骤
一、下载php源码下载地址:http://cn.php.net/downloads.php二、安装1、将下载的二进制包移动到/usr/local目录,解压缩文件包tar zxvfphp-7.1.4.tar.gz2、进入解压的php文件夹下/usr/local/php-7.1.4,安装依赖,编译安装yum install libxml2 libxml2-devel./...
2017-05-02 19:01:17 10975 1
原创 Nginx运行日志自动切割
所谓自动分割Nginx日志文件,就是指Rotate Nginx log files,即让Nginx每天(或每个星期,可自定义控制)生成一个日志文件,而不是将Nginx所有的运行日志都放置在一个文件中,这样每个日志文件都相对较小,定位问题也更容易。实现自动分割Nginx日志的方法可以参考:http://www.cnblogs.com/wjoyxt/p/4757093.html现在
2017-05-01 16:57:58 23368
原创 Nginx配置基础-概述
Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端
2017-05-01 16:16:57 342
原创 使用nginx反向代理后如何在后台web应用中获取用户ip
问题背景在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.RemoteAddr就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.RemoteAddr获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办?原理解释经过反向代理后,由于在客户端和web服务器之间增加了
2017-05-01 15:02:44 5621 2
原创 Nginx配置基础-proxy_pass
proxy_pass中使用变量问题例如Nginx的一个相对复杂的反向代理设置:location ^~ /wap/{ if ($request_uri ~ /wap/(\d+)/(.+)){ set $bucketid $1; set $params $2; } proxy_pass http://mx$bucketid.test.com:6601/$params;}也可以首
2017-05-01 14:37:54 4001
原创 Nginx配置基础-内置变量
下面是可以用作if判断的全局变量$args : #这个变量等于请求行中的参数,同$query_string$content_length : 请求头中的Content-length字段。$content_type : 请求头中的Content-Type字段。$document_root : 当前请求在root指令中指定的值。$host : 请求主机头字段,否则为服务器名称。
2017-05-01 13:16:50 2250
原创 Nginx配置基础-rewrite
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如http://seanlook.com/a/we/index.PHP?id=1&u=str 只对/a/we/index.php重写。语法rewrit
2017-05-01 13:11:10 670
原创 Nginx配置基础-location
location表达式类型~ 表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配,不区分大小写^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。= 进行普通字符精确匹配。也就是完全匹配。常规字符串匹配。按前缀匹配。@ 它定义一个命名的 location,使用在内部定向时,例如 error_page, try_filesloc
2017-05-01 12:58:15 389
原创 Nginx配置基础-正则表达式
常用正则. : 匹配除换行符以外的任意字符? : 重复0次或1次+ : 重复1次或更多次* : 重复0次或更多次\d :匹配数字^ : 匹配字符串的开始$ : 匹配字符串的介绍{n} : 重复n次{n,} : 重复n次或更多次[c] : 匹配单个字符c[a-z] : 匹配a-z小写字母的任意一个小括号()之间匹配的内容,可以在后面通过$1来引用,$2
2017-05-01 12:22:26 4224
原创 Nginx学习
Nginx rewrite语法、if语法、内置全局变量、location语法 参考:http://blog.csdn.net/xuxile/article/details/70809291Nginx根据URL定向转发实现负载均衡 参考:http://blog.csdn.net/u010959000/article/details/50730684
2017-04-30 18:07:04 341
原创 Linux查看CPU信息、物理CPU个数、核数、逻辑CPU个数
#查看CPU信息(型号)cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sor
2017-04-28 14:53:30 511
原创 Nginx安装配置(系统平台:CentOS 7.1 64位)
一、安装编译工具及库文件yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel pcre pcre-devel(PCRE 作用是让 Nginx 支持 Rewrite 功能)二、安装Nginx1、下载Nginx下载地址:http://nginx.org/,选择稳定版本(例如:
2017-04-28 08:31:29 1907 1
原创 golang实现从串口读取GPS信息
GPS模块的数据格式对GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183 协议。NMEA-0183 是美国国家海洋电子协会(National Marine Electronics Association)所指定的标准规格,这一标准制订所有航海电子仪器间的通讯标
2017-04-25 19:54:09 7589
原创 Go语言实现telnet远程登录
目前的linux服务器默认都未安装telnet服务,如需在linux服务器(如CentOS7)上安装telnet服务,可参考:http://www.centoscn.com/image-text/install/2015/0101/4402.htmltelnet-server默认监听的端口号为23默认情况下,linux不允许root用户以telnet方式登录linux主机
2017-04-14 08:47:09 10403 2
转载 Go语言TCP Socket通信编程
Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket
2017-04-13 08:49:05 2926
原创 window平台使用bat批处理实现进程守护
window平台使用bat批处理实现进程守护需要用到如下一些知识:一、批处理实现延时一段时间Windows下批处理文件没有像Linux一样的Sleep函数进行延时处理,这里有2种较为实用的方法实现延迟:1、使用WScirpt的sleep功能,精度0.001秒创建vbs延迟文件,然后在批处理文件中调用,使用WScript的 sleep函数,实现sleep的效果。实战:1)
2017-04-10 15:55:29 10045 1
转载 golang slice 切片原理
golang 中的 slice 非常强大,让数组操作非常方便高效。在开发中不定长度表示的数组全部都是 slice 。但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果就是在实际开发中碰到很多坑,以至于出现一些莫名奇妙的问题,数组中的数据丢失了。下面我们就开始详细理解下 slice ,理解后会对开发出高效的程序非常有帮助。这个是 slice 的数据结构,它很
2017-04-08 16:14:13 7801 2
原创 Go语言特性挖掘
1、切片与隐藏数组参考:http://www.jb51.net/article/58379.htm2、range值传递参考:http://www.jb51.net/article/92401.htm3、Go语言修炼之道参考:http://www.jb51.net/article/62728.htm4、Go语言项目列表参考:https://github.com
2017-04-07 23:46:50 310
转载 使用Golang实现简单Ping过程
摘要: Ping的基本原理是发送和接受ICMP请求回显报文,利用Go语言可以轻松实现这一过程,较之C/C++语言,Go的实现过程十分简单,效率和安全性也十分完美。引言 关于各种语言实现Ping已经是大家喜闻乐见的事情了,网络上利用Golang实现Ping已经有比较详细的代码示例,但大多是仅仅是实现了Request过程,而对Response的回显内容并没有做接收。而Pi
2017-03-28 10:45:01 7028
原创 go语言选择语句 switch case
根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough case 3: fmt
2017-03-15 17:08:03 4946
原创 linux环境部署Spark集群(Standalone Mode)
准备工作 linux系统默认情况下,防火墙软件都是开启的,几乎所有的端口都是不对外开发的,spark集群内的各个节点间的通信需要用到相关的端口,如master节点的--webui-port:8080,worker节点的--webui-port:8081,master节点与worker节点间的通信需要用6066,7077端口,因此需要在防火墙中设置相关规则,开放这些端口,现以
2017-03-11 20:27:26 2258
原创 正则表达式
在我们处理文件时,很多时候会用到查找与替换。当我们想将文件中某一部分替换替换文件中另一部分时,怎么办呢? 下面正则表达式 给我提供方法。正则表达式,提供复杂 并且弹性的查找与替换注意: 不支持多行表达式 (involving \n, \r, etc).1 基本表达式符号解释.匹配任意字符,除了新一行(\n)。也就是
2017-02-16 12:52:14 28079 1
转载 Go语言版crontab
1、cron 表达式的基本格式用过 linux 的应该对 cron 有所了解。linux 中可以通过 crontab -e 来配置定时任务。不过,linux 中的 cron 只能精确到分钟。而我们这里要讨论的 Go 实现的 cron 可以精确到秒,除了这点比较大的区别外,cron 表达式的基本语法是类似的。(如果使用过 Java 中的 Quartz,对 cron 表达式应该比较了解,而且它
2017-02-07 16:28:25 1564
原创 践行之路
Scala IDE 搭建Spark 2开发环境参考:http://blog.csdn.net/wengyupeng/article/details/52807655详解基于maven管理-scala开发的spark项目开发环境的搭建参考:http://blog.csdn.net/pengych_321/article/details/52014249
2016-12-28 23:03:50 494
原创 Linux手动安装sbt步骤
一、下载sbt安装包从sbt官网下载地址:http://www.scala-sbt.org/download.html下载安装包,以sbt-1.2.8.tgz为例。二、安装1、将下载的二进制包移动到/usr/local目录,解压缩文件包tar zxvfsbt-1.2.8.tgzmvsbt-launcher-packaging-0.13.13 sbt //重命名目录2、...
2016-12-28 14:00:30 6265 4
原创 Linux安装hadoop步骤
准备工作需要新增一个名为hadoop的用户,方法如下:1、以root身份登录linux系统,在shell终端中输入如下命令创建用户hadoopuseradd -m hadoop -s /bin/bash2、使用如下命令修改hadoop用户的密码passwd hadoop3、为hadoop用户增加管理员权限visudo在打开的文件中找到“root ALL=(
2016-12-26 16:23:06 1155
原创 Linux安装Spark2.0.2步骤
一、下载Spark首先我们需要下载Spark安装包,下载地址:http://spark.apache.org/downloads.html,以spark-2.0.2版本为例二、安装1、将下载的Spark安装包放到/usr/local目录,解压缩安装包tar zxvf spark-2.0.2-bin-without-hadoop.tgzmv spark-2.0.2-bin-wit...
2016-12-26 10:18:19 2577
原创 Spark2.0安装
准备工作运行Spark2.0,需要java和scala的支持,JDK至少1.7版本以上,scala至少2.11版本以上,CentOS7.x系统默认只安装了Java JRE,还需要安装Java JDK,并配置好JAVA_HOME变量。安装Spark1、下载安装2、配置Spark环境spark-defaults.conf配置一些jar包的引用。(注意:spark2.0.1版本不再有
2016-12-24 20:06:00 795
原创 文本文件里如何快速在每行头尾都加上指定的内容---正则表达式(一)
有时候我们需要给一个文本文件的每行前面或后面添加一些内容,例如一个文本文件里放了很多的水果的名字,现在我们需要在每个水果的名字前后都加上双引号,并在每一行的结尾都加上逗号。工具Notepad++步骤1、使用Notepad++打开待处理的文本文件苹果桃子香蕉橙子2、使用快捷键Ctrl+H打开“替换对话框”,在每行的开头添加内容勾选左下角的“正则表达式”选项
2016-12-24 12:27:38 25234 3
原创 Linux下MongoDB自动备份
一、创建MongoDB备份目录mkdir -p /data/mongodb_bak/mongodb_bak_nowmkdir -p /data/mongodb_bak/mongodb_bak_list二、新建MongoDB数据库备份脚本(/data/mongodb_bak/MongoDB_bak.sh)#!/bin/bash#backup MongoDB#mongodump命
2016-12-17 15:07:21 8497
原创 MongoDB运行日志自动分割
所谓自动分割MongoDB日志文件,就是指Rotate MongoDB log files,即让MongoDB每天(或每个星期,可自定义控制)生成一个日志文件,而不是将MongoDB所有的运行日志都放置在一个文件中,这样每个日志文件都相对较小,定位问题也更容易。实现自动分割MongoDB日志的方法可以参考:https://docs.mongodb.com/manual/tutorial/rot
2016-12-17 12:27:27 12458 4
原创 Linux定时任务
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/se
2016-12-17 11:20:55 589
原创 Linux安装Scala步骤
一、下载Scala安装包从scala官方网站地址:http://www.scala-lang.org/download/下载scala二进制包,以2.11.8版本为例二、安装1、将下载的二进制包移动到/usr/local目录,解压缩文件包tar zxvf scala-2.11.8.tgz mv scala-2.11.8 scala //重命名目录2、设置环境变量vi...
2016-12-15 13:05:52 13014
原创 MongoDB经验分享
一、设置Balancer时间窗口时慎重使用“_waitForDelete”{ "_id" : "balancer", "activeWindow" : { "start" : "00:00", "stop" : "07:30" }, "stopped" : false, "_waitForDelete" : true }因
2016-12-15 10:08:45 401
原创 MongoDB主要启动参数说明
MongoDB主要配置参数--quiet# 安静输出--port arg# 指定服务端口号,默认端口27017--bind_ip arg# 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP--logpath arg# 指定MongoDB日志文件,注意是指定文件不是目录
2016-12-15 09:54:05 600
SecureCRT 7.2.1 x86及注册机
2014-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人