Linux下安装Nginx
Nginx简介
Nginx是一款开源的,高性能的web服务器,也是一个IMAP/POP3/SMTP代理服务器。它可以通过反向代理进行服务器负载均衡的实现。
在Linux服务器下安装配置Nginx,首先要确定是否安装perl gcc gcc-c++这些库,可用yum安装,这里不做具体介绍。
安装依赖库文件
安装Nginx主要需要用到以下几个库,这里介绍的是通过源码安装的方式。
源码安装步骤:
- 下载源码包
wget http://links…
- 解压包
tar zxvf 包名
- 进入解压后的源码目录
cd ./包名
- 配置(安装路径或者一些其他配置)
一般看源码中配置文件是什么(例如:configure 或者 config,下面命令使用configure举例),就在当前使用配置文件执行配置命令,每个配置以空格隔开。
./configure --prefix=安装路径
- 编译
make
- 安装
make install
安装时自己可以根据需要安装适合的版本。
-
安装pcre
pcre 作用是让 Nginx 支持 Rewrite 功能
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd ./pcre-8.35
./configure --prefix=/app/learn5/opt/pcre-8.35
make
make install -
安装zlib
gzip模块需要zlib库
wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz
cd ./zlib-1.2.11
./configure --prefix= /app/learn5/opt/zlib-1.2.11
make
make install -
安装openssl
ssl功能需要openssl库
wget http://www.openssl.org/source/openssl-1.0.2q.tar.gz
tar zxvf openssl-1.0.2q.tar.gz
cd ./openssl-1.0.2q
./config --prefix= /app/learn5/opt/openssl-1.0.2q
make
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中
- Nginx检测
./nginx -t
出现如上图信息,证明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欢迎页面。
本人修改了欢迎页面的内容,默认的不是这样的,只要能看到就行。
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了。