手工搭建Centos+Nginx容器

一.制作Centos+Nginx容器

1.拉取CentOS镜像

2.我们以这个作为基础镜像,来搭建一个nginx镜像

先创建一个临时容器,就取名叫tmp吧

这时容器已经创建好了,但是因为没有设置bash,所以会卡在当前会话。我们另开一个会话

docker多容器运行-php+fpm+httpd

我尽可能的使用基于alpine的镜像

一.安装PHP-fpm

Dockerfile参考:
Docker官方: https://hub.docker.com/_/php/
阿里云:https://dev.aliyun.com/detail.html?repoId=1250

可以在PORTS下方看到端口默认是9000

docker下运行php-cli(基于alpine)

一.通过docker运行一个php程序

先拉取个阿里云的镜像
https://dev.aliyun.com/detail.html?repoId=1250

至于docker安装,镜像源设置,请参考《Linux上yum安装docker

Nginx-Location 配置

语法规则

location [=|~|~*|^~] /uri/ { … }

= 表示精确匹配,这个优先级也是最高的
^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa 匹配到(注意是空格)。
~ 表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则
/ 通用匹配,任何请求都会匹配到,默认匹配.
* -f 和!-f 用来判断是否存在文件
*-d 和!-d 用来判断是否存在目录
*-e 和!-e 用来判断是否存在文件或目录

Nginx-编译参数详解

Nginx 常见参数(较少使用的参数不予列出):

–prefix= 指向安装目录
–sbin-path 指向(执行)程序文件(nginx)
–conf-path= 指向配置文件(nginx.conf)
–pid-path= 指向 pid 文件(nginx.pid)
–user= 指定程序运行时的非特权用户
–group= 指定程序运行时的非特权用户组

从源码编译go爬坑记录

简介

Go1.5以下是用C编译的.Go 1.5实现了bootstrapping,所以编译1.5以后的版本和编译1.5以前的版本会略有不同。bootstrapping是编译器领域的一个术语,中文翻译为自举或自展,通俗地讲“用要编译的目标语言编写其编译器(汇编器)”。Go1.5开始编译器和运行时完全用Go语言编写(还有少量汇编);go1.4是最后一个用C编写工具链的发布。
本文演示的是go的编译安装,日常使用大可不必这么麻烦。直接下载编译好的对应平台的二进制包即可。

编译nginx-1.12.0 出错问题汇总

最简单的编译

出错信息如下:

the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre= option.

翻译:

HTTP重写模块需要PCRE库。
您可以使用 禁用该模块
或将PCRE库安装到系统中,或构建PCRE库
通过使用 选项指向PCRE库的源码目录。