今天来看看如何安装nginx
现在流行两种web服务器,一种 apache 另一种就是nginx。应公司需求搭建nginx,如下:
安装nginx之前,需要上传文件,安装 一下 lrzsz 这个插件包吧,上传文件用。如果有好的办法,可以不用安装。
#yum install -y lrzsz
第一步:下载nginx
http://nginx.org/en/download.html

选择1.6.3 这个版本,
wget http://nginx.org/download/nginx-1.6.3.tar.gz
通过wget方法去下载这个文件,

下载完成
创建nginx进程使用的账号和用户组
加上 -r 就是系统用户 如果不加 -r 就是普通用户
[root@bogon soft]# groupadd -r nginx
[root@bogon soft]# useradd -g nginx -s /sbin/nologin -r nginx

[root@bogon soft]# cat /etc/passwd | grep nginx

看到上面的这张图,已经创建用户成功。
上传文件、或下载文件:把以下内容准备完毕

在当前目录下执行下面的命令:
# tar -xf nginx-1.6.3.tar.gz
解压这个压缩包,先不着急操作,

安装nginx必须先安装这三个文件,要哪几个呢?

需要这三个文件
openssl-1.0.1c.tar.gz
zlib-1.2.8.tar.gz
pcre-8.38.tar.gz
准备好文件以后,就依次安装吧,看步骤
安装需要的系统文件:
yum install -y gcc gcc-c++
第一、openssl-1.0.1c.tar.gz
tar -xf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
#其他编译都是 ./configure 而这个软件不同,它是 ./config 记住即可。
./config
make #编译

make install #安装

第二、zlib-1.2.8.tar.gz
tar -xf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install
图示:




第三、pcre-8.38.tar.gzcd zlib-1.2.8
注意:安装pcre之前,它依赖于 gcc gcc-c++ 这些包,因此 需要检测是否安装,如果没有,安装一下
yum install -y gcc gcc-c++

tar -xf pcre-8.38.tar.gz
cd pcre-8.38
./configure

make

make install

cd nginx-1.6.3

./configure --with-pcre=/a/pcre-8.38 --with-zlib=/a/zlib-1.2.8 --with-openssl=/a/openssl-1.0.1c --with-http_ssl_module
如果要安装keepalived 那么就要把 --with-http_stub_status_module 这句监控nginx运行状态的代码加上。
如:./configure --with-pcre=/a/pcre-8.38 --with-zlib=/a/zlib-1.2.8 --with-openssl=/a/openssl-1.0.1c --with-http_ssl_module --with-http_stub_status_module
或者使用下面这条编译语句:
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-openssl=/usr/local/src/openssl-1.0.2j
需要注意一下的是:
这指的路径全部是源码的解压路径,
--with-pcre=/a/pcre-8.38 --with-zlib=/a/zlib-1.2.8 --with-openssl=/a/openssl-1.0.1c


make

make install

检测系统是否安装成功
cd /usr/local/nginx

安装成功
#cd sbin
#ll
total 2788
-rwxr-xr-x. 1 root root 2854433 May 11 16:16 nginx
# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动nginx

netstat -ntulp

测试网站是否可以访问:

到这一步,证明nginx就可以访问了。
我们的nginx 服务安装完毕。
如果不能访问到这里,请设置一下防火墙
iptables -F
清空所有的规则。
2、为nginx提供SysV init脚本
在/etc/init.d/目录下编写脚本,名为nginx
#!/bin/sh
# nginx - this script starts and stops the nginx daemon
........
nginx="/usr/local/nginx/sbin/nginx" #nginx 执行文件所在的位置
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" #nginx配置文件一定要写对。
......
这个文件是带有省略代码的,
完整代码,可下载:
nginx.txt 下载这个文件,直接放在 /etc/init.d/这个目录下,起名叫 nginx 即可。
需要把.txt 去掉

2.3 为此脚本赋予执行权限:
#chmod 755 /etc/rc.d/init.d/nginx
2.4添加至服务管理列表,并设置开机启动
# chkconfig --add nginx #添加到服务管理列表
# chkconfig nginx on #开机启动
第二种设置开机自启动的方法:
打开 vi /etc/rc.local
直接把下面代码复制到里
/etc/rc.d/init.d/nginx start
保存退出即可。

和添加到 chkconfig --add nginx chkconfig nginx start 和这样的代码是一样的。
2.5启动服务测试:
#service nginx start

nginx启动、停止、无间断服务重启
# service nginx start
# service nginx stop
# service nginx reload
如果这里有哪一个编译错了,可以使用 make clean 清除上一次的编译。
遇到的问题(1):
(1)问题内容:sha1 library is not found
(2)原因分析:弄不清楚
(3)解决办法:configure的时候增加参数 --with-http_ssl_module
遇到的问题(2):
pcre8.38
打开这个网站
找到
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib/

下载要使用的版本:
我下载的是 pcre-8.38.tar.gz 通过wget 方式下载
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib/pcre-8.38.tar.gz
下载完毕后,解压
tar -xf pcre-8.38.tar.gz

进入目录 cd pcre-8.38

执行 ./configure 这个命令,在执行这个命令之前,要安装pcre 编译所需要的库
yum install -y gcc gcc-c++
必须执行,否则出错
./configure
configure: error: You need a C++ compiler for C++ support
make
make install
执行完毕
然后,执行pwd 看一下目录在哪里,在编译 nginx时需要填写这个路径
--with-pcre=/root/soft/pcre-8.38