Nginx部署及日常问题排查
第一步:Nginx下载
**官方网站:**https://nginx.org/en/download.html
注:此处我们选择的是linux的1.14.2版本进行安装;
Linux命令: wget https://nginx.org/download/nginx-1.14.2.tar.gz
下载完成后直接进行解压到相对应的目录下即可。
查看Nginx的依赖包是否存在
可以通过rpm -qa 包名 的方式进行查询是否安装了依赖包。
rpm -qa openssl
注:若不能连接外网,建议先准备好nginx版本对应的依赖包。
Nginx所需依赖包:
1.依赖环境介绍
gcc gcc-c++
gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言 的编译器(最早的时候只能编译C,后来很快进化成一个编译多种语言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)
gcc 在编译C++源代码的阶段,只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库链接(编译过程分为编译、链接两个阶段,注意不要和可执行文件这个概念搞混,相对可执行文件来说有三个重要的概念:编译(compile)、链接(link)、加载(load)。源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执行文件被加载到内存中运行)。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。
gcc-c++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。
make automake
make是一个用来控制可执行文件和其他一些从源文件来的非源代码文件版本的软件。Make可以从一个名为makefile的文件中获得如何构建你所写程序的依赖关系,Makefile中列出了每个目标文件以及如何由其他文件来生成它。
automake是一个从Makefile.am文件自动生成Makefile.in的工具。为了生成Makefile.in,automake还需用到perl,由于automake创建的发布完全遵循GNU标准,所以在创建中不需要perl。libtool是一款方便生成各种程序库的工具。
autoconf
autoconf是用来生成自动配置软件源代码脚本(configure)的工具。
pcre pcre-devel
在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite模块和HTTP 核心模块会使用到PCRE正则表达式语法。
zlip zlib-devel
nginx启用压缩功能的时候,需要此模块的支持。
openssl openssl-devel
开启SSL的时候需要此模块的支持。
libtool
libtool是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。
libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题;将繁重的库依赖关系的维护工作承担下来,从而释放了程序员的人力资源。libtool提供统一的接口,隐藏了不同平台间库的名称的差异等细节,生成一个抽象的后缀名为la高层库libxx.la(其实是个文本文件),并将该库对其它库的依赖关系,都写在该la的文件中。
可参考博客经验:
需提前安装相应版本的依赖包
注:依赖包可以文章底部获取;
安装pcre
wget https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
//编译
./configure &&make && make install
安装openssl
tar -zxvf openssl-fips-2.0.14.tar.gz
//编译
./config &&make && make install
安装zlib
tar -zxvf zlib-1.2.11.tar.gz
//编译
./configure &&make && make install
编译安装
./configure --prefix=/home/workspace/server/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/home/workspace/server/nginx/conf/nginx.conf --error-log-path=/home/workspace/log/nginx/error.log--http-log-path=/home/workspace/server/log/nginx/access.log--pid-path=/home/workspace/server/nginx/nginx.pid --lock-path=/home/workspace/server/nginx/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio --with-openssl=./home/openssl-fips-2.0.14 --with-zlib=./home/zlib-1.2.11 --with-pcre=./home/pcre-8.43 && make && make install
启动命令:
cd /usr/local/nginx/conf/nginx
./nginx -c /home/workspace/server/nginx/conf/nginx.conf
遇到的错误,如果使用nginx -s reload,则会报如下错误。