nginx 配置点滴

  1. 重定向
    1. rewrite可以重定向
    2. return 301 $url; 也能重定向,简单的重定向使用return 301更简介,如,强制访问443端口,80段定义如下:

       
  2. return 301 $url ; 不同于 return $url ;
    1. 后者不会导致页面跳转,而是服务器端代为请求了
  3. location = / 不能嵌套在其他的location中,虽然逻辑上似乎合理,但是执行不到
  4. nginx中常用的变量: http://nginx.org/en/docs/varindex.html
  5. lua openresty https://github.com/openresty/lua-nginx-module

关于location:

  1. location之间是互斥的,可以嵌套,但不可以继承,如:
    1. location / 嵌套在 location / 中,虽然没有语法错误,但是,内层的location不会被执行到
    2. location /sub 嵌套在 location / 中时,如果匹配到了location sub 则location / 里面 ,location /sub 外面的逻辑不会被执行到,这就是我所谓的不可以继承,效果等同于并列的两个location

开发库

开发库是开发人员修改代码的地方。(开发人员可以随意修改)
受控库是测试版本代码存放的地方。(需要开发组长提交测试申请修改)
产品库是测试通过版本存放的地方。(需要测试报告来驱动修改)

参考
http://blog.sina.cn/dpool/blog/s/blog_4ec6138401000akg.html?vt=4

java cpu 100% 无响应

占用cpu高的线程的堆栈如下:

gdb 跟进发现:线程在函数Dependencies::find_finalizable_subclass(Klass*) 中,应该有一个循环,不断地调用函数Klass::subklass()

 

解决办法:

The fix was simple – disable CMS class unloading options when -Xnoclassgc or -XX:-ClassUnloading are specified.

参考资料:

https://blogs.oracle.com/poonam/entry/jvm_hang_with_cms_collector

 

想阅读jvm源码吗? https://blogs.oracle.com/sundararajan/entry/so_you_want_to_read

docker容器中的crond中的任务如何获取环境变量

  1. 我们可以通过docker create时的-e选项设置环境变量
  2. crond会清空环境变量
  3. 如何设置一个cron中能够看到的环境变量呢?

 

解决办法:

  1. 指定一个自定义的SHELL ,该shell参考一下自定义的环境变量文件

参考:

  1. http://stackoverflow.com/questions/27771781/how-can-i-access-docker-set-environment-variables-from-a-cron-job

linux 之 /proc/$pid/environ

我们知道 linux的 /proc 是一个虚拟的文件系统,而 /proc/$pid/ 下的文件也应该能反映进程的实时状态,但是 /proc/$pid/environ 并不能反映进程实时的环境变量,比如,这里不能体现setenv() 产生的变化,为什么呢?

  1. 这个是故意为之还是无意为之?
  2. 如果是故意为之,那么,为什么这么设计?

下面有一篇文章,分析的比较细致,但是没有给出任何的结论:https://codywu2010.wordpress.com/2014/09/14/procfs-environ-explained-in-depth-1/