Rootop 服务器运维与web架构

2018-03-07
发表者 Venus
ssh秘钥第一次登陆时,跳过公钥检查已关闭评论

ssh秘钥第一次登陆时,跳过公钥检查

配置了秘钥登陆,免去输入密码,但是第一次登陆时会有一个提示动作
The authenticity of host ‘192.168.10.14 (192.168.10.14)’ can’t be established.
ECDSA key fingerprint is SHA256:zCrwLrWV8zc9FMtIt0C+bV+CR3yfEcXsgpSSD4/x2yk.
ECDSA key fingerprint is MD5:6b:a0:a2:ab:08:c0:33:b1:df:2f:63:f0:9d:ba:9c:1f.
Are you sure you want to continue connecting (yes/no)?

通过ssh指定参数 StrictHostKeyChecking no 可以跳过检查,或者改ssh配置文件。
这里选择跳过:
ssh -o “StrictHostKeyChecking no” root@192.168.10.14

SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。
但是在特定情况下,严格的SSH公钥检查会破坏一些依赖SSH协议的自动化任务,就需要跳过SSH的公钥检查。

2018-02-24
发表者 Venus
ajax请求跨域问题已关闭评论

ajax请求跨域问题

比如当前浏览的地址为 http://www.a.com/login.php
login.php 里有个 ajax 的 post 请求到 http://www.a.com/login.php ,post数据中有用户名、密码,
后台判断是否正确,返给客户端处理结果,浏览器再接着跳转。

这是正常的处理流程,如果post到另一个域名下,就产生跨域问题了。浏览器会停止执行。

下面是本地测试代码:
访问地址为:http://cp/admin/login.php
ajax请求地址是:http://test/cross.php

<script>
function login(){
 var postdata = $(".form-signin").serialize();
 $.post("http://test/cross.php", postdata, function(data){
 if(data.s == 0){
 location.href = "/admin/index.php";
 }else{
 $(".alert").text(data.err).slideDown(200);
 $(".form-signin .form-control").addClass("refuse");
 }
 }, "json");
}
</script>

cross.php代码如下:

<?php
echo json_encode(array('s'=>0));

这样测试以后,打开chrome调试,发现是无法触发跳转。浏览器发现是跨域请求(不安全),在浏览器中就直接不执行了。

把cross.php添加一个响应头。

<?php
header('Access-Control-Allow-Origin:*');
echo json_encode(array('s'=>0));

再次测试发生了跳转。
*号代表所有域

还有一种方法就是在nginx或者apache中,添加一个响应头。
如nginx下:
server {
listen 80 default_server;
add_header Access-Control-Allow-Origin ‘*’ ;

2018-02-07
发表者 Venus
阿里云centos设置交换分区已关闭评论

阿里云centos设置交换分区

最近一个月博客经常性出现无法连接到mysql,查日志是因为内存不足(1G内存)。所以想到用交换分区。
默认阿里云是没有交换分区的,估计是因为交换分区会影响磁盘IO。

[root@www ~]# free -m
 total used free shared buff/cache available
Mem: 3790 2530 115 34 1145 953
Swap: 0 0 0

# 创建一个交换分区

[root@www ~]# dd if=/dev/zero of=/swap bs=1M count=1024
[root@www ~]# mkswap -f /swap

# 设置权限,否则 swapon 会提示 insecure permissions

[root@www ~]# chmod 600 /swap
[root@www ~]# swapon /swap

# 设置开机自动挂载交换分区

[root@www ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon May 8 03:33:12 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=41b13286-90d7-4c0f-9afb-ba92382eda59 / ext4 defaults 1 1
/swap swap swap defaults 0 0

这几天就再也没出现过连不上mysql的情况。