AWS Api gateway绑定自定义域名

在使用API Gateway的时候需要绑定自己的域名,我这里没有和CDN联系在一起,就需要用自己的域名去做关联。本篇文章完全是入门文章,我是今天花了一下午的时间才把这个看似简单的过程给全部串在一起,大体过程如下:

准备API

1.新建一个api,这里我不做多的描述,我直接是采用官方的宠物商店的示例做的,其中要注意的是stage在测试的时候需要写成beta,把这个写好后就直接deploy api.

绑定自定义域名

2.申请https证书
因为api gateway只支持https,官方的解释为:

问:我是否可以创建 HTTPS 端点?

答:可以,通过 Amazon API Gateway 创建的所有 API 都只公开 HTTPS 终端节点。Amazon API Gateway 不支持未加密的 (HTTP) 终端节点。默认情况下,Amazon API Gateway 将内部域分配给自动使用 Amazon API Gateway 证书的 API。如果您将 API 配置为以自定义域名运行,则可以为域提供您自己的证书。

https://aws.amazon.com/cn/api-gateway/faqs/
例如我的域名为:test.ciika.com,腾讯云刚好提供了一年免费的SSL证书
q1_ink_li
申请好后,我们会得到三个文件:1_root_bundle.crt ,2_test.ciika.com.crt ,3_test.ciika.com.key
还有一种方式是采用openssl自己去生成

3.api关联域名
这一步我花了比较多的时间,一直在报错,如图:
q2
把上面得到的内容填充到上面即可,填充关系为:
1_root_bundle.crt  ->chain
2_test.ciika.com.crt ->body
3_test.ciika.com.key ->private key
点击SAVE后,会提示

Create an Alias resource record with your DNS provider to map test.ciika.com to affafa66zkqp3.cloudfront.net
Certificate name
testciika
Distribution domain name
affafa66zkqp3.cloudfront.net

DNS留着最后一步用,先来添加api mapping
q4

4.设置DNS
在腾讯云的域名解析里面,添加cname 到步骤三里面得到的DNS affafa66zkqp3.cloudfront.net
q5

到这里为止,所以的工作都到位了,在浏览器里面访问https://test.ciika.com/abc/pets
得到了我们想要的结果

[
	{
		"id": 1,
		"type": "dog",
		"price": 249.99
	},
	{
		"id": 2,
		"type": "cat",
		"price": 124.99
	},
	{
		"id": 3,
		"type": "fish",
		"price": 0.99
	}
]

 

在CentOS 7上搭建LNMP(linux,nginx,mysql/mariadb,php)环境

准备:
从centos7之后引入了systemctl的命令,需要先学习一下这个命令,后面的安装都是基于systemctl来的,这篇文章介绍的比较全面http://blog.csdn.net/u012486840/article/details/53161574,或者直接看http://man.linuxde.net/systemctl
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

开始安装:

安装Nginx
yum install nginx
按照提示,输入yes后开始安装。安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:
systemctl start nginx

检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。
systemctl status firewalld

最后将Nginx设置为开机启动:
systemctl enable nginx.service

安装MySQL(MariaDB)

MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢。在CentOS 7的软件仓库中,将MySQL更替为了MariaDB。其实在很多时候,可以不用安装,centos7已经自带了mariadb
yum install mariadb-server

安装完成之后,执行以下命令重启MariaDB服务:
systemctl start mariadb

MariaDB默认root密码为空,我们需要设置一下,执行脚本:
/usr/bin/mysql_secure_installation

这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。

首先提示输入当前的root密码:
Enter current password for root (enter for none):

初始root密码为空,我们直接敲回车进行下一步。
Set root password? [Y/n]

设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。
Remove anonymous users? [Y/n]

是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。
Disallow root login remotely? [Y/n]

是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。
Remove test database and access to it? [Y/n]

是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。
Reload privilege tables now? [Y/n]

是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。

完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:
mysql -uroot -p
按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。

最后我们将MariaDB设置为开机启动。
systemctl enable mariadb

安装PHP

我们可以直接使用yum安装PHP:
yum install php-fpm php-mysql

安装完成后我们将php-fpm启动:
systemctl start php-fpm

将php-fpm设置为开机启动:
systemctl enable php-fpm

php安装完成之后,需要设置一下php session的目录:
mkdir /var/lib/php/session/

这时php-fpm已经安装完毕,但是现在需要配置一下Nginx,在/etc/nginx/conf.d目录中新建一个名

为php.conf的文件,其内容为:

server {
	listen 80;
	server_name ciika.com www.ciika.com;

	location ~* \.(js|css|png|jpg|jpeg|bmp|gif|ico)$ {
		root /var/www/html/;
		log_not_found off;
		access_log off;
	}
	
	location ~ /{
		root /var/www/html/;
		fastcgi_pass 127.0.0.1:9000;
		try_files $uri $uri/ /index.php?$args;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}

然后执行以下命令使我们的配置生效:
systemctl reload nginx

以上内容部分摘抄自网上,ciika本站是采用上面的方法安装成功的,亲测可用。之前是采用的apache,但是apache运行并不稳定,和mysql在一起经常造成mysql的进程自动被系统杀掉,采用nginx后,目前相对稳定。

Centos7下增加swap分区大小[转载]

运行一段时间后,wordpress会挂掉,报错Error establishing a database connection,是由于内存不够,系统把mysql给杀掉了,所以可以通过增加虚拟内存的方式解决这个问题。

如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的,通常Swap空间的大小应是物理内存的2-2.5倍.

 此方法不限于centos,linux均适用

以下命令均需在root帐号下操作

1.先用free -m查看一下swap的大小



2. 使用dd命令创建/home/swap这么一个分区文件。文件的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M。

#dd if=/dev/zero of=/home/swap bs=1024 count=512000



3.接着再把这个分区变成swap分区。

#/sbin/mkswap /home/swap



4.再接着使用这个swap分区。使其成为有效状态。

#/sbin/swapon /home/swap



现在再用free -m命令查看一下内存和swap分区大小,就发现增加了512M的空间了。



注意当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab文件,增加如下一行

#vi /etc/fstab

/home/swap swap swap defaults 0 0



你就会发现你的机器自动启动以后swap空间也增大了。

 

转自:http://www.77169.com/hack/201608/228059.shtm

Google Maps API error: Invalid KeyMap Error

在使用谷歌地图的时候,在研发阶段没有分配KEY的时候,需要尽早写代码,如果显示的指定了错误的key反而会报错,会报Google Maps API error: Invalid KeyMap Error,解决方法也很简单,直接删掉Key就可以了,比喻
https://maps.googleapis.com/maps/api/js?v=3&key=test&callback=initMap
改成
https://maps.googleapis.com/maps/api/js?v=3&callback=initMap
就可以正常访问了