搭建微信订阅号后台服务

搭建微信订阅号后台服务 准备域名 任务时间:20min ~ 40min 微信公众平台需要配置服务器地址 URL 访问,在实验开始之前,我们要准备域名。 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频。 视频 – 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为: <您的 CVM IP 地址> 在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频: 视频 – 如何在腾讯云上解析域名 域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 [?],如: ping www.yourmpdomain.com 如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。 注意替换下面命令中的 www.yourmpdomain.com 为您自己的注册的域名 申请微信个人订阅号 任务时间:5min ~ 10min 在开始搭建我们的订阅号服务器之前,需要先拿到订阅号相关信息。 注册开发者账号 如果你还不是微信订阅号开发者,请先在微信公众平台注册: https://mp.weixin.qq.com 具体注册流程可参考如下视频: 视频 – 注册开发者账号 若您已注册,请点击下一步。 获取微信订阅号公众平台认证字段信息 我们需要获取3个字段:AppID Token EncodingAESKey。 登录微信公众平台,依次进入 开发 – 基本配置 可以拿到 AppID。 在基本配置 – 服务器配置 – 修改配置 表单中: … Continue reading "搭建微信订阅号后台服务"

DBA不可不知的操作系统内核参数

背景 操作系统为了适应更多的硬件环境,许多初始的设置值,宽容度都很高。 如果不经调整,这些值可能无法适应HPC,或者硬件稍好些的环境。 无法发挥更好的硬件性能,甚至可能影响某些应用软件的使用,特别是数据库。 数据库关心的OS内核参数 512GB 内存为例 1. 参数 fs.aio-max-nr 支持系统 CentOS 6, 7 参数解释 aio-nr & aio-max-nr: . aio-nr is the running total of the number of events specified on the io_setup system call for all currently active aio contexts. . If aio-nr reaches aio-max-nr then io_setup will fail with EAGAIN. . Note that … Continue reading "DBA不可不知的操作系统内核参数"

利用Proxy Cache使Nginx对静态资源进行缓存

前言 Nginx是高性能的HTTP服务器,通过Proxy Cache可以使其对静态资源进行缓存。其原理就是把静态资源按照一定的规则存在本地硬盘,并且会在内存中缓存常用的资源,从而加快静态资源的响应。 配置Proxy Cache 以下为nginx配置片段: proxy_temp_path /usr/local/nginx/proxy_temp_dir 1 2; #keys_zone=cache1:100m 表示这个zone名称为cache1,分配的内存大小为100MB #/usr/local/nginx/proxy_cache_dir/cache1 表示cache1这个zone的文件要存放的目录 #levels=1:2 表示缓存目录的第一级目录是1个字符,第二级目录是2个字符,即/usr/local/nginx/proxy_cache_dir/cache1/a/1b这种形式 #inactive=1d 表示这个zone中的缓存文件如果在1天内都没有被访问,那么文件会被cache manager进程删除掉 #max_size=10g 表示这个zone的硬盘容量为10GB proxy_cache_path /usr/local/nginx/proxy_cache_dir/cache1 levels=1:2 keys_zone=cache1:100m inactive=1d max_size=10g; server { listen 80; server_name *.example.com; #在日志格式中加入$upstream_cache_status log_format format1 '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" $upstream_cache_status'; access_log log/access.log fomat1; #$upstream_cache_status表示资源缓存的状态,有HIT MISS EXPIRED三种状态 add_header … Continue reading "利用Proxy Cache使Nginx对静态资源进行缓存"

静态文件用nginx直接serve

#css|js|ico|gif|jpg|jpeg|png|txt|html|htm|xml|swf|wav这些都是静态文件,但应分辨,js、css可能经常会变,过期时间应小一些,图片、html基本不变,过期时间可以设长一些 location ~* ^.+\.(ico|gif|jpg|jpeg|png|html|htm)$ { root /var/www/poseidon/root/static; access_log off; expires 30d; } location ~* ^.+\.(css|js|txt|xml|swf|wav)$ { root /var/www/poseidon/root/static; access_log off; expires 24h; } #注:location不包括?后面带的参数,所以以上正则可以匹配http://192.168.1.16/image/sxxx.jpg?a=xxx

resin + nginx

download the upstream jvm route from http://code.google.com/p/nginx-upstream-jvm-route/ [root@web1 nginx-1.2.0]# tar -zxf nginx-upstream-jvm-route-0.1.tar.gz [root@web1 nginx-1.2.0]# patch -p0 ./nginx_upstream_jvm_route/jvm_route.patch [root@web1 nginx-1.2.0]# ./configure –sbin-path=/usr/sbin/ –conf-path=/etc/nginx/nginx.conf –with-http_stub_status_module –with-http_ssl_module –add-module=./nginx_upstream_jvm_route   edit /etc/nginx/nginx.conf add upstream resin_proxy { server 127.0.0.1:85 srun_id=app-by1 max_fails=2 fail_timeout=10s weight=200; //负载均衡 server web3:85 srun_id=app-by2 max_fails=2 fail_timeout=10s weight=200;      //负载均衡 jvm_route $cookie_JSESSIONID|sessionid; } server { listen 80; server_name … Continue reading "resin + nginx"

nginx+resin 使用中文域名解决方案。

xxx中文域名.中国 这样的域名在resin下会出错: [15:34:31.628] {hmux-127.0.0.1:6801-5} java.lang.StringIndexOutOfBoundsException: String index out of range: 9[15:34:31.628] {hmux-127.0.0.1:6801-5}  at java.lang.String.charAt(String.java:687)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.host.DomainName.decode(DomainName.java:205)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.host.DomainName.fromAscii(DomainName.java:86)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.host.HostContainer.buildInvocation(HostContainer.java:305)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.cluster.Server.buildInvocation(Server.java:915)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.dispatch.DispatchServer.buildInvocation(DispatchServer.java:209)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:427)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)[15:34:31.628] {hmux-127.0.0.1:6801-5}  at java.lang.Thread.run(Thread.java:619)[15:34:31.628] {hmux-127.0.0.1:6801-5} java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: 9[15:34:31.628] {hmux-127.0.0.1:6801-5}  at … Continue reading "nginx+resin 使用中文域名解决方案。"