你现在的位置: 导航首页 > 技术文章
技术精华文章win环境vpn安装nginx配置说明Win系统CMD命令CentOS系统SSH命令Linux下安装pptpdLinux下安装nginx

Linux下安装Nginx完整教程及常见错误解决方案


一、Nginx安装环境

Nginx是C语言开发,建议在linux上运行,本教程使用Centos7.5作为安装环境.

(1)gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc

#需要执行的命令:
yum install gcc-c++ 

(2)PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

#需要执行的命令:
yum install -y pcre pcre-devel

(3)zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

#需要运行的命令:
yum install -y zlib zlib-devel

(4)openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

#需要运行的命令:
yum install -y openssl openssl-devel

二、编译安装

将nginx-1.16.1.tar.gz(wget http://nginx.org/download/nginx-1.16.1.tar.gz)拷贝至linux服务器.在安装的时候我会安装在/usr/local目录下,所以将Nginx的tar包拷贝到usr/local目录下.可以使用winSCP软件将tar包拷贝到local目录下.

1.首先进入/usr/local目录下:

cd /usr/local

2.下载安装包

wget http://nginx.org/download/nginx-1.16.1.tar.gz 

3.解压压缩包

tar xvf nginx-1.16.1.tar.gz

4.进入安装目录

cd nginx-1.16.1

5.1普通安装命令(选一)

./configure --prefix=/usr/local/nginx

5.2安装SSL模块(支持https)(选一)

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

6.编译安装nginx

make
make install

三、安装完毕启动nginx

/usr/local/nginx/sbin/nginx


四、已安装nginx支持https配置 the "ssl" parameter requires ngx_http_ssl_module

一:开始Nginx的SSL模块

Nginx如果未开启SSL模块,配置Https时提示如下错误:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

解释:nginx缺少http_ssl_module模块,需要在已安装的nginx中添加ssl模块。

说明:我的nginx安装目录为:/usr/local/nginx , 源码包目录在/usr/src/nginx-1.16.1

Nginx开启SSL模块:

切换到源码包:
cd /usr/src/nginx-1.5.9

查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V

在configure arguments:后面显示的原有的configure参数如下:
--prefix=/usr/local/nginx --with-http_stub_status_module

二:从新配置SSL模块:

进入nginx源码包目录,运行:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

配置完成后,运行命令make命令:

make

注意:此处不能进行make install,否则就是覆盖安装

三:替换已安装好的nginx包

替换之前先备份:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

先停止nginx服务:

//查询nginx主进程号
$ ps -ef | grep nginx
//从容停止Nginx:
$kill -QUIT 主进程号
//快速停止Nginx:
kill -TERM 主进程号
//强制停止Nginx:
pkill -9 nginx

将刚刚编译好的nginx覆盖掉原有的nginx

cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V
此时应该显示为即配置成功:
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module