• Category Archives: linux

简易搭建局域网内部dns服务器

在做APP开发测试,由于手机不能像电脑修改host文件那样方便的映射dns,所以在局域网进行调试时,需要搭建一台DNS服务器用于给移动设备进行解析。

准备两台最小化Centos 7 服务器,一台用来搭建dns服务器,一台用来测试dns;一台window 10 用来测试dns,机器IP如下:

  • dns 服务器 IP:192.168.122.254
  • linux 客户端IP:192.168.0.71
  • window 客户端IP:192.168.0.254

实现步骤

  • 我们测试的域名:sway.com.cn
  • 使用bind搭建dns服务器
  • 防火墙开启53端口访问
  • 配置客户端的dsn服务
  • 测试dns使用

1、配置部署服务端

在需要搭建dns服务的centos 7机器上操作

  • 安装bind

安装完后,相关的配置主要涉及以下几个目录的文件:

/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #拓展配置文件
/var/named/ #zone 配置文件目录

  • named的核心配置文件:/etc/named.conf:

1、修改 listen-on port 53 { 127.0.0.1; }; 为 any

2、修改 allow-query { localhost; }; 为 any

  • 向拓展配置文件加入您的域名信息:/etc/named.rfc1912.zones

  • 在/var/named/ #zone目录创建您的域名解析文件sway.com.cn.zone:

  • 使用named-checkzone命令检测您的配置文件:

  • 启动bind并开机自启动

 

2、配置linux客户端的dns

修改/etc/resolv.conf文件设置dns服务器:

 

3、配置windows客户端的dns

修改网卡属性,设置ipv4协议中的dns服务器为:192.168.122.254

4、使用ping命令测试

使用ping dns.sway.com.cn查看解析是否正确即可

5、开启防火墙(如果有开防火墙的话)

 

CentOS 7 使用 yum 安装 RabbitMQ 3.6.6

1、安装erlang

到https://www.rabbitmq.com/releases/erlang/下载安装erlang的最大rpm版本,如果自行安装erlang会十分麻烦,我已经被坑过了

1.1、下载erlang

1.2、安装erlang

1.3、测试erlang

输入erl,出现如下画面即为安装正确:

2、安装RabbitMQ

注意不要再官网上安装最新的,安装最新的则需要安装更新版本的erlang,但是erlang能用rpm安装的最大版本只有19,所以我们在这里下载匹配的v3.6.6的RabbitMQ。

2.1、下载RabbitMQ

2.2、安装RabbitMQ

如果提示:#错误:依赖检测失败:socat 被 rabbitmq-server-3.6.6-1.el7.noarch 需要

则使用以下命令先安装socat:

2.3、启动RabbitMQ

2.4、配置网页插件

2.5、配置访问账号密码和权限

2.6、登录网页端

http://ip:15672

输入刚刚设置的账号和密码即可。

使用jconsole远程监控tomcat的性能

1、修改tomcat的启动文件,在启动文件的CATALINA_OPTS(如果是daemon.sh启动则为JAVA_OPTS)变量中加上以下参数:

2、打开jconsole,输入服务器的IP和监控端口,账号密码为服务器的登录账号和密码,点连接即可。

nginx要注意的并发配置

单核所能产生的线程数问题

nginx默认只使用cpu的一个核,单核支持的线程数是1024,意味着超过1024就会崩

需要在配置中加上:worker_processes 4 (数字“4”为您所需要使用的核数)

单个文件访问数量的问题

nginx默认只允许单个文件被4096个线程打开,意味着如果nginx的线程超过4096也会崩,哪怕设置CPU核数大于4个

需要在配置中加上:worker_rlimit_nofile 32768

123

在CentOS7中使用Jenkins自动化部署SpringBoot项目

安装Jenkins

准备工作

计算机中先安装好JDK、Maven、Git,并记录其安装路径。

安装Jenkins

使用 yum install jenkins 来安装jenkins,安装好后使用 systemctl start jenkins启动。

使用浏览器访问该服务器的8080端口(默认),然后在选择安装插件的时候选择左边的默认插件。

配置Jenkins的插件

在Jenkins里面“manage – jenkins”的”manage plugins”点击”可选插件”,筛选maven,安装好Maven Integration plugin。(如果需要中文支持,则安装 locale plugin后在configure system找到Default Language设置为“zh_CN”并勾选“Ignore browser preference and force this language to all users Pipeline Speed/Durability Settings”后保存)

在Jenkins里面“manage – jenkins”的”global tool configuration”分别设置JDK、GIT、MAVEN的安装路径后保存。

修改Jenkins的运行权限为ROOT

修改jenkins的运行权限为ROOT,找到“vim /etc/sysconfig/jenkins”文件并编辑JENKINS_USER=”root”,然后重启jenkins

使用以下命令更改Jenkins主页,webroot和日志的所有权:

 

创建Maven项目

 

阿里云Centos7使用yum安装MySQL5.6

centos自带的repo是不会自动更新每个软件的最新版本,所以无法通过yum方式安装MySQL的高级版本。

先安装带有可用的mysql5系列社区版资源的rpm包

查看当前可用的mysql安装资源

这个时候我们可以直接使用yum的方式安装MySQL了

加入开机启动

安装结束

mysql:百度地图经纬度,按照经纬度坐标排序查询

公式:

第一点经纬度:lng1 lat1
第二点经纬度:lng2 lat2

 

 

sql语句:

 

Tomcat的性能与最大并发(1000)

当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。
当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。
操作系统对于进程中的线程数有一定的限制:
Windows 每个进程中的线程数不允许超过 2000
Linux 每个进程中的线程数不允许超过 1000
另外,在 Java 中每开启一个线程需要耗用 1MB 的 JVM 内存空间用于作为线程栈之用。
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。
Tomcat 默认的 HTTP 实现是采用阻塞式的 Socket 通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于 Tomcat 来说几乎没有 BUG 存在了。
Tomcat 还可以配置 NIO 方式的 Socket 通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。
这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能也是非常高的。
对于单台数据库服务器来说,允许客户端的连接数量是有限制的。
并发能力问题涉及整个系统架构和业务逻辑。
系统环境不同,Tomcat版本不同、JDK版本不同、以及修改的设定参数不同。并发量的差异还是满大的。
maxThreads=”1000″ 最大并发数
minSpareThreads=”100″///初始化时创建的线程数
maxSpareThreads=”500″///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount=”700″// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

 

nginx安装ssl证书后, 安卓机下https提示SSL警告, 且微信端打开空白

西部数码推出了免费的ssl证书, 办法机构是 trustAsia.

根据流程申请后, 并且使用nginx配置我的证书后, 看上去一切正常.

但是此时同事发来贺电说打开空白…

总结情况就是: 苹果机访问一切正常, 但是安卓机的微信端访问空白, 安卓机的自带浏览器提示SSL警告.

123

这是 联想乐檬X3 LITE 自带浏览器访问的结果.

 

于是我怀疑是不是证书域名打错了? 检查了后不是.

于是在想会不会微信对这个机构颁发的证书不信任? 但是查询了一下腾讯自己也有申请这一个证书的功能, 腾讯不会不支持自家的东西.

但是我以前弄过另外一个项目是正常的, 为什么这次不正常?

于是对比了一下nginx的证书配置, 以前的项目我是使用了pem+key证书的搭配, 这个出问题的项目使用的是cer+key的搭配. 于是我通过网站在线合成pem的网页把cer和key合成为pem证书后使用(也就是pem+key的模式), 结果一切正常..! 问题到此已经解决…

为什么会这样呢? 由于没有时间去深入研究, 所以这个问题留给大家去研究啦..!

 

close