之前了解过一些Nginx的知识,只是大概知道它的一些优良特性,如高性能,高并发,负载均衡等等。因为以后工作会用的原因,所以打算彻底的学习一番。
一,依赖库安装
为了简单,就直接使用apt-get自动安装。
1.SSL支持需要的库OpenSSL
sudo apt-get install openssl libssl-dev
sudo apt-get install libssl-dev
以上命令进行安装,如果安装过的话,会有如下类似的提示:
其中(1.0.2g-libuntu4.6)是ssl的版本。这时,安装的路径可以不用管,因为在nginx编译中,不知道SSL的路径的话,会自动找到其安装路径。
2.rewrite模块需要的库PCRE(Perl Compatible Regular Expressions)
sudo apt-get install libpcre3 libpcre3-dev libpcrecpp0v5
以上命令进行安装,如果安装过的话,会有如下类似的提示:
3.gzip压缩需要的zlib
sudo apt-get install zlib1g-dev
以上命令进行安装,如果安装过的话,会有如下类似的提示:
二.下载nginx以及安装
1.下载nginx包
地址为:http://nginx.org/download/。我选择的此时的最新版http://nginx.org/download/nginx-1.9.15.tar.gz 并解压到~/software 目录下。~为当前用户的主目录。
此处整个路径为/home/yefeng/software/nginx-1.9.15。
2.配置nginx
命令行进入nginx目录下:
cd ~/software/nginx-1.9.15/
配置nginx内容:
sudo ./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
执行结果如图:
可以看到,pcre,oenssl,zlib都是使用系统默认的库,当然如果需要的话也可以在配置的时候指定。下面是一些文件的目录,在配置的时候额我只配置了几个,而其它的都是根据这些值自动创建的。
3.编译生成
运行一下命令:
sudo make
sudo make install
如果有报错的话,应该是配置时路径的问题导致的,重新运行./configure再运行即可。
4.查看80端口是否被占用
因为启动nginx需要使用80端口。比如运行有apache,就需要关掉此进程。
方法一:netstat -apn | grep :80
查找其中本机上使用了80端口的记录,记录其PID
方法二:我在使用上面方式时,发现我的电脑上出现了如下的记录:
这两条记录并没有显示PID和程序名称,而其它都有显示:
因此没办法kill掉。换了如下方式:
sudo fuser 80/tcp
结果为:
或者这种方式:
sudo lsof -i tcp:80
结果为:
至于为什么有这样的进程,也不是很清楚,因为重启电脑后查询80端口,就存在这样的进程。
按照PID kill掉这些进程:sudo kill -9 4183
再次检查80端口,此时没有被占用了。
5.启动nginx
sudo /usr/local/nginx/nginx
启动的目录就是步骤2中配置结束图中,"nginx binary file"一项的值。
运行成功的话,没有任何提示,可以用命令查看:ps -ef | grep nginx
存在进程的话,证明运行成功,也在浏览器中访问:http://127.0.0.1/ 或者 此时你电脑的ip。
到此nginx安装成功。