Linux下安装Nginx

Linux下安装Nginx

Nginx简介

Nginx是一款开源的,高性能的web服务器,也是一个IMAP/POP3/SMTP代理服务器。它可以通过反向代理进行服务器负载均衡的实现。

在Linux服务器下安装配置Nginx,首先要确定是否安装perl gcc gcc-c++这些库,可用yum安装,这里不做具体介绍。

安装依赖库文件

安装Nginx主要需要用到以下几个库,这里介绍的是通过源码安装的方式。
源码安装步骤:

  1. 下载源码包

wget http://links

  1. 解压包

tar zxvf 包名

  1. 进入解压后的源码目录

cd ./包名

  1. 配置(安装路径或者一些其他配置)
    一般看源码中配置文件是什么(例如:configure 或者 config,下面命令使用configure举例),就在当前使用配置文件执行配置命令,每个配置以空格隔开。

./configure --prefix=安装路径

  1. 编译

make

  1. 安装

make install


安装时自己可以根据需要安装适合的版本。

以上库文件安装的时候,在配置时,若不为root用户,只能安装在自己的目录下(~/),安装在默认路径会报权限不允许的错误。

安装Nginx

同样使用源码安装

wget http://nginx.org/download/nginx-1.10.0.tar.gz
tar zxvf nginx-1.10.0.tar.gz
cd ./nginx-1.10.0.tar.gz
./configure --with-pcre=/app/learn5/pcre-8.35 --with-zlib=/app/learn5/zlib-1.2.11 --with-openssl=/app/learn5/openssl-1.0.2q --prefix=/app/learn5/opt/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

注意:
以上在配置过程中,指定的库文件路径一定要指定源码路径,而不是安装路径,不然在编译make时会报文件找不到的错误。
还有就是几个库文件的版本一定要兼容,不然也会make也会报错,本人安装时一开始就是因为openssl版本不兼容,在编译时就一直出错…后来换一个版本就好了。
在配置时后面加上–with-http_ssl_module 是为了在配置Nginx时支持https,不然在配置转发https时就会报错,Nginx配置可以点击查看。如果安装时没有配置这些,之后配置的话需要重新编译,下面文章末尾会介绍安装后增加配置的升级Nginx的过程。

编译安装通过之后就会在配置的安装目录(–prefix=后面的内容就是安装目录)生成sbin(里面就是nginx文件)、conf(里面有一些列包含nginx配置文件在内的配置文件)、logs(日志文件夹,默认的运行时nginx.pid也是在这个目录下)、html(安装成功默认配置的默认欢迎页面index.html等等)…等等几个目录。

  • 查看Nginx版本

首先切换到Nginx安装目录的sbin目录下:

cd ~/opt/nginx/sbin

通过nginx -V查看Nginx版本:

./nginx -V
这里注意:nginx前面一定加./,表示当前目录下的nginx,后面的nginx执行命令都是一样的需要添加./。
还有就是后面的-V或者-v都可以,如果是-V的话出现的信息包括是否安装时的配置信息。-v只会出现版本信息。

如图配置信息在configure arguments中
Linux下安装Nginx

  • Nginx检测

./nginx -t

Linux下安装Nginx
出现如上图信息,证明Nginx安装成功。

  • 启动Nginx

./nginx

若你不是root用户,此时直接启动Nginx会报权限不允许的错误。因为Nginx的默认配置是监听80端口,在linux下1024以下的端口只能是root用户,所以需要修改配置文件~/opt/nginx/conf/nginx.conf中http下的server里的监听端口号listen为其他端口,如8085,再重新启动就可以启动Nginx了。

可以通过 netstat -nelp 命令查看启动之后的网络状态。也可以通过ps -ef | grep nginx 查看nginx启动进程。
启动之后可以在浏览器中输入 服务器ip:端口号 即可看到nginx欢迎页面。
Linux下安装Nginx
本人修改了欢迎页面的内容,默认的不是这样的,只要能看到就行。

Nginx增加配置

打个比方,如果在安装Nginx时在配置时没有添加–with-http_ssl_module,之后在配置Nginx想转发https,就会报错。找一下原因,原来没有添加这个配置。那已经都安装了,怎么办呢?
其实可以先备份一下之前的安装的nginx:

cp ./nginx ./nginx.cp

再到Nginx的源码目录,重新配置一下,加上–with-http_ssl_module:

./configure … --with-http_ssl_module

再编译一下:

make

其实编译之后在当前源码目录下objs下的会重新编译生成nginx。可以使用命令./objs/nginx -V查看该nginx 版本。此时configure arguments中就多了–with-http_ssl_module配置。
再把该nginx 文件拷贝到nginx安装目录的sbin目录下,覆盖之前的nginx文件即可。

cp ./objs/nginx ~/opt/nginx/sbin/nginx

再重启Nginx就可以配置转发https了。