您的位置:首页 > 运维架构 > Nginx

Linux下nginx的安装部署和配置

2018-01-20 10:31 741 查看


安装

要安装nginx,默认情况下需要安装下面3个依赖项:
rewrite模块需要
pcre

gzip模块需要
zlib

ssl 功能(例如开启https支持)需要
openssl


当然也不是非要安装不可,不想安装也可以通过参数配置来禁用,这是后话。我第一次安装时觉得https暂时用不上就没有安装,只装了前面2个,大家可以根据实际需要决定是否安装,第一个rewirte用到的几率还是比较大的。


1.1. 依赖安装


1.1.1. pcre 安装

下载
pcre-8.38.tar.gz
文件放在
/home/nginx/
下面:
cd /home/nginx
tar -zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure
make & make install


1.1.2. zlib 安装

下载
zlib-1.2.8.tar.gz
文件放在
/home/nginx/
下面:
cd /home/nginx
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make & make install


1.1.3. openssl 安装

openssl
安装要很久很久,所以建议根据实际需要决定是否需要安装,不需要
https
功能的可以跳过此步。

下载
openssl-1.0.2n.tar.gz
文件放在
/home/nginx/
下面:
cd /home/nginx
tar -zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n
./config
make & make install


1.2. nginx 安装

下载
nginx-1.8.1.tar.gz
放在
/home/nginx
下,然后:
cd /home/nginx
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1


1.2.1. 如果上面3个依赖都安装

./configure --prefix=/home/nginx/nginx-1.8.1 --with-pcre=/home/nginx/pcre-8.38 --with-zlib=/home/nginx/zlib-1.2.8 --with-openssl=/home/nginx/openssl-1.0.2n --with-http_ssl_module
make & make install


特别注意结尾的
--with-http_ssl_module
,安装ssl的话必须要指定这个,如果只指定了
--with-openssl
而没有指定
--with-http_ssl_module
的话,启动nginx会报如下错误:
[emerg] 10464#0: unknown directive "ssl" in /home/nginx-1.8.1/conf/nginx.conf


1.2.2. 如果只安装pcre和zlib

./configure --prefix=/home/nginx/nginx-1.8.1 --with-pcre=/home/nginx/pcre-8.38 --with-zlib=/home/nginx/zlib-1.2.8 --without-http_ssi_module
make & make install


1.2.3. 如果不安装任何模块:

./configure --prefix=/home/nginx/nginx-1.8.1 --without-http_rewrite_module --without-http_gzip_module --without-http_ssi_module
make & make install


不清楚的可以通过
./configure --help
 查看相关参数介绍。


启动与停止

# cd /home/nginx/nginx-1.8.1/sbin
# ./nginx


这样就启动了,修改了配置文件后可以:
# ./nginx -s reload(重新加载配置文件)
# ./nginx -s stop(或者停止)


nginx配置

关于nginx的配置,另外单独写了一篇博文,请参考:nginx配置总结


nginx更新模块

假如nginx已经安装好了并且平稳运行了一段时间,现在需要新安装一个模块该如何操作呢?这里就以我最近安装ssl模块为例介绍,前面说了,第一次安装nginx的时候觉得https暂时用不到就没安装,现在需要安装就没第一次那么容易了。

nginx安装新模块需要整体重新编译,所以需要知道上一次安装时的编译命令,假设
nginx
安装在
/home/nginx/nginx-1.8.1
下面,定位到
sbin
下面执行
./nginx
-V
(注意
V
是大写)后可以查看安装时使用的命令:
[root@iZ94i7kwlagZ sbin]# ./nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
built with OpenSSL 1.0.2n  7 Dec 2017
TLS SNI support enabled
configure arguments: --prefix=/home/nginx/nginx-1.8.1 --with-pcre=/home/nginx/pcre-8.38 --with-zlib=/home/nginx/zlib-1.2.8 --without-http_ssi_module


然后定位到源码包去重新编译,根据已有的命令再加上我们这次要安装的新模块命令,我这里是
--with-openssl=/home/nginx/openssl-1.0.2n --with-http_ssl_module
。注意,如果源码包删了,重新下载一个版本一致的
nginx-1.8.1.tar.gz
并解压,为了区分,我解压到
/home/nginx/temp-nginx-1.8.1

cd /home/nginx/temp-nginx-1.8.1
./configure --prefix=/home/nginx/nginx-1.8.1 --with-pcre=/home/nginx/pcre-8.38 --with-zlib=/home/nginx/zlib-1.2.8 --with-openssl=/home/nginx/openssl-1.0.2n --with-http_ssl_module
make


切记这里仅仅需要
make
,不需要
make
install
。执行完之后我们在
/home/nginx/temp-nginx-1.8.1/objs/
下得到了一个新的二进制文件
nginx
,上面所有操作都是为了得到这个文件,然后将这个文件覆盖现有nginx文件即可(为了以防万一,最好备份一下):
cd /home/nginx/nginx-1.8.1/sbin/
./nginx -s stop # 先停止
cp ./nginx ./nginx.backup # 备份
cd /home/nginx/
cp temp-nginx-1.8.1/objs/nginx nginx-1.8.1/sbin/nginx # 覆盖


然后启动nginx查看是否正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: