Nginx是一个开源的,支持高性能、高并发的www服务和代理服务软件。它是有俄罗斯人Igor Sysoev开发的,作者将其以BSD的许可证的形式开源供全球使用。如果你对Apache比较熟悉,当然也无法无法避免地听过这个市场份额不断上升的服务代理软件。目前国内的大公司淘宝、新浪等都有在使用Nginx.可见Nginx受欢迎程度。下面来介绍一下博主自己安装Nginx的过程。
<p>
首先我们假设的前提是你们已经安装了centos操作系统,已经能够访问Internet了。
</p>
1.首先第一步安装Nginx的依赖库以及文件,在命令行模式下输入以下命令。
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
2.然后第二部安装Nginx的二进制压缩包文件,现在我们使用的是wget命令来获取压缩包文件,可能系统出现一下的错误。
-bash command:wget can not found
这是我们的系统没有安装wget这个命令,这个可以直接用yum来安装
yum -y install wget
接下来要在Nginx的官网下载压缩包,这里我选择的是nginx-1.6.3.tar.gz,在命令模式输入以下命令:
wget -p http://nginx.org/download/nginx-1.6.3.tar.gz
这会在当前的目录下下载到一个压缩包,我们在/home/yourself(这里是你自己的用户名)创建一个文件夹来来放置Nginx包,一系列命令如下:
cd /home/yourself
mkdir myNginx
cd myNginx
mv .../nginx-1.6.3.tar.gz /home/yourself/myNginx 这里..是你之前下载压缩包的时候的路径
3.解压缩nginx-1.6.3.tar.gz,输入以下命令:
tar -zxvf nginx-1.6.3.tar.gz
但是此时系统报了错误:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
找了很多的出错的解决方法,有人说是因为这个压缩包没有用gzip的方式进行压缩,所以只需要输入:
tar -vfx nginx-1.6.3.tar.gz
然而博主自己并没有解决自己的问题,也试过修改压缩的包名为nginx-1.6.3.tar。但是并没有解决问题。后来找到的问题是下载的压缩包文件是被破坏的,所以通过ftp工具把nginx包上传到centos系统。这个解决了不能解压缩的问题。
4.解压缩之后,当前的目录会有一个nginx-1.6.3的文件夹。
cd nginx-1.6.3
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/
--with-http_stub_status_module --with-http_ssl_module
上面的参数详细解释一下:
--prefix=PATH //设置安装路径
--user=USER //进程用户权限
--group=GROUP //进程用户组的权限
--with-http_stub_status_module //激活状态信息
--with-http_ssl_module //激活ssl功能
5.编译和安装以及建立文件的软连接
make && make install
ln -s /application /nginx-1.6.3 /application/nginx
6.查看文件的权限
ls -l /application/nginx/
7.启动并检查安装结果
安装完Nginx之后,并不能直接对外提供服务,需要先启动Nginx服务才行,具体操作如下。
启动之前,检查Nginx的配置语法是否出错
/application/nginx/sbin/nginx -t
如果没有出现启动异常问题,接下来用curl来访问nginx:
curl 127.0.0.1(localhost)
如果可以查看到nginx的index文件就说明Nginx安装已经成功了。
接下来,可能安装的启动过程出现错误,列举以下以下错误:
问题1:启动Nginx时有如下报错"nginx:[emerg] getpwnam("nginx")failed",这是因为没有对应的Nginx用户,执行
useradd nginx -s /sbin/nologin -M
创建用户即可。
问题2:编译安装pcre编译软件时,gcc不全导致报错.
[root@www~]# make && make install
make all-am
make [1]:Entering directory `/home/yourself/mynginx/pcre-8.30'
CXX pcrecpp.lo
libtool:compile:unrecognized option `-DHAVE_CONFIG_H'
libtool:compile:Try `libtool --help' for more information.
make[1]:***[pcrecpp.lo]//错误1
make[1]:Leaving directory `/home/yourself/mynginx/pcre-8.30'
make:***[all]//错误2
执行yum -y install gcc-c++
命令安装gcc-c++依赖包可以解决。
问题3:wget或者curl等软件访问不了Nginx页面。
此类问题的排查思路分在Nginx服务器端排查和在客户端排查。服务器端的排查过程如下。
首先关闭SElinux,命令如下:
setencenforce 0 //临时关闭selinux的方法
grep SELINUX=disabled /etc/selinux/config //永久关闭
然后检查防火墙
/etc/init.d/iptables stop //这是关闭防火墙的命令,如果是有外网IP的生产环境,请允许80端口的访问,而不是关闭防火墙
chkconfig iptables off //非正式环境下可以禁止防火墙开机启动。
/etc/init.d/iptables status //查看iptables的当前状态
问题4:在安装的环节遇到以下的错误:
./configure:error :SSL modules requires the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library into
the system,or build the OpenSSL library statically from the source with nginx by
using --with-openssl=<path> option
解决的方式是执行命令:
yum -y install openssl openssl-devel
到此,Nginx的安装工作到此结束了。