6、安装daemontools
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar xvzf daemontools-0.76.tar.gz -C /root/sdk/daemontools-0.76
cd admin/daemontools-0.76
sudo package/install
install脚本会在根目录/下创建两个目录:/service和/command目录。其中/service目录用来存放被daemontools管理的进程,注意在/service目录下存放的只能是连接。/command命令下存放的是daemontools的一些常用命令。
如果install有错误:
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld 返回 1
make: *** [envdir] 错误 1
Copying commands into ./command...
cp: 无法 stat “compile/envdir”: 没有那个文件或目录
则编辑src/conf-cc, gcc加上-include /usr/include/errno.h 使用标准错误
启动
启动daemontools工具:
/command/svscanboot &
&后台运行
这时看下svs(supervise)的运行情况:
ps -ef | grep svs
可以看到两个相关进程:
/bin/sh /command/svscanboot
和svscan /service
7、安装nginx
Nginx是C写的,需要用GCC编译;Nginx的Rewrite和HTTP模块会用到PCRE(Perl Compatible Regular Expression);Nginx中的Gzip用到zlib[1]。
因此在安装nginx之前需要检查当前环境是否已经安装有GCC、PCRE、Zlib还有一个就是OpenSSL。
使用rpm -qa命令查看GCC、Zlib、PCRE和OpenSSL是否已安装:
# rpm -qa gcc
gcc-4.4.7-17.el6.x86_64
# rpm -qa pcre
pcre-7.8-7.el6.x86_64
# rpm -qa zlib
zlib-1.2.3-29.el6.x86_64
# rpm -qa openssl
openssl-1.0.1e-48.el6_8.3.x86_64
可知,ECS centos6.8系统下已安装有所需要的以上软件,下一步直接安装nginx。
下载
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz -C /root/sdk
安装
源码编译准备
使用./configure进行安装环境检查和安装配置(由于不确定默认安装路径,故指定安装路径为/usr/local/nginx),此命令会生成 Makefile:
cd nginx-1.10.3/
./configure --prefix=/usr/local/nginx
如果报错
./configure: error: the HTTP rewrite module requires the PCRE library.
则执行:
yum -y install pcre-devel
如果报错
./configure: error: the HTTP gzip module requires the zlib library.
则执行:
yum install -y zlib-devel
如果报错
./configure: error: the HTTP cache module requires md5 functions from OpenSSL library.
则执行:
yum -y install openssl openssl-devel
编译
make
安装
make install
查看安装
# whereis nginx
nginx: /usr/local/nginx
启动nginx
nginx可执行文件存放路径: 安装目录/sbin/nginx。这里就是/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx
./nginx -h命令,查看命令帮助
./nginx -t 查看配置文件
启动nginx服务
./nginx
执行nginx命令即可启动nginx服务。如果发现80端口已经被占用,可能是nginx服务已经启动。执行pkill nginx即可杀掉nginx服务。
可以使用ps -ef | grep nginx命令查看内存中是否还有nginx进程。
ps -ef | grep nginx
root 29919 1 0 16:36 ? 00:00:00 nginx: master process ./nginx
nobody 29920 29919 0 16:36 ? 00:00:00 nginx: worker process
现在打开浏览器,在地址栏输入http://主机ip,注意需要打开80端口。如果输出welcome to nginx,表明nginx已经配置成功。
下一步可进行相关配置,将请求从80端口转向8080端口
进入/usr/local/nginx/conf路径,输入以下命令:
vi nginx.conf
其中:
listener 监听端口
server_name 监听域名
location{}是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”。
location / { }匹配任何查询,因为所有请求都以 / 开头。
root指定对应uri的资源查找路径,html为相对路径,在我的服务器上完整路径为/usr/local/nginx/html/,
该路径下有一个index.html的文件,便是输入ECS实例IP或绑定的域名返回的响应内容。[2]
这里我们是想使用nginx的反向代理(Reverse Proxy)功能。反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
server {
listen 80;
server_name 127.0.0.1:8080;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
server下的结点:
listen:监听80端口
server_name:转发到哪个地址
proxy_pass:代理到哪个地址
配置完成后,重启nginx
进入/usr/local/nginx/sbin路径:
./nginx -s reload