第十七章:第36节Linux(ubuntu)编译方式安装Nginx

更新于:2024-06-12 09:18:15

Nginx是非常流行的web服务器,和Apache一样,用它的非常多,感觉比Apache更受欢迎。


推荐几篇文章了解Nginx:


高并发Web服务的演变——节约系统内存和CPU

Nginx支持比Apache高并发的原因

Nginx 多进程模型是如何实现高并发的?

Apache与Nginx网络模型

通俗地解释 CGI、FastCGI、php-fpm 之间的关系


我们试着在ubuntu中以编译的方式安装Nginx服务器软件。

在安装前,不管你是在阿里云还是腾讯云买的主机,一定要确认下主机所属安全组有没有开放web访问相关端口:80、443。

1.png

不然等你完成下面的所有步骤时,还是不能正常访问


在安装nginx前,首先要装几个软件:


为了不受权限的影响,我们切换到root用户操作。


1)gcc安装


安装Nginx我们是源码安装,对源码编译依赖gcc环境,一般Linux默认是安装的


1.png


如果没有就试着用apt-get或者yum安装下


apt-get install gcc-c++
yum install gcc-c++


2)PCRE 安装


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


安装它的步骤:

①去官网http://www.pcre.org/获取下载地址


1.png

获取pcre-8.42.tar.gz这个版本的下载地址:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz


②在Linux中下载


1.png


cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz


注:wget类似于下载工具的命令。


③解压安装


1.png



tar zxvf pcre-8.42.tar.gz 解压目录
cd pcre-8.42 进入目录
./configure 检查编译环境
make && make install 编译安装


1.png

pcre-config --version

安装成功。


3)zlib库 安装


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


安装它的步骤:

①去官网http://www.zlib.net获取下载地址

可能因网络的原因,官网没有打开。直接从网上找了一个下载地址:

http://zlib.net/zlib-1.2.11.tar.gz


cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz

使用wget下载


③解压安装

tar zxvf zlib-1.2.11.tar.gz 解压目录
cd zlib-1.2.11 进入目录
./configure 检查编译环境
make && make install 编译安装


4)OpenSSL 安装


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

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


安装它的步骤:

①去官网https://www.openssl.org/获取下载地址

https://www.openssl.org/source/openssl-1.1.1a.tar.gz


cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz

使用wget下载


③解压安装

tar zxvf openssl-1.1.1a.tar.gz 解压目录
cd openssl-1.1.1a 进入目录
./config  检查编译环境 (目录下没有configure文件)
make && make install 编译安装

1.png


整个过程装了好久。


以上软件非必须,但为了保证Nginx安装成功,请尽量安装。


注:


centos下可以直接使用yum命令:

yum install gcc-c++


yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

一键安装所有命令:
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel


ubuntu下有些软件可以使用apt命令,楠神试了下,没有成功,可能是软件名称输入的不正确吧。


Nginx的安装:


①进入官网获取下载地址


http://nginx.org


1.png


我们下载 Stable version(最新的稳定版本):nginx-1.14.2 


②下载解压安装

cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.2.tar.gz


tar zxvf nginx-1.14.2.tar.gz 解压目录
cd nginx-1.14.2 进入目录
./configure 检查编译环境
make && make install 编译安装


也可以使用自定义配置:

./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_ssl_module

备注:


--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \


单独配置下这5个参数,为临时文件设置单独的存储目录。如果不设置,nginx会自动把这5个目录设置在“/usr/local/nginx”下。因为这5个目录的文件都是临时文件,随时变化,这样整体对nginx安装目录不好设置用户属性文件权限

根据楠神实际的经验,把nginx的临时文件目录指定为/var/temp/nginx,比较妥当。前提需要在/var下创建temp及nginx目录。

如果后期需要修改目录,不需要重新编译,直接在配置文件中配置即可。


nginx的临时文件目录介绍


友情提示:

在以后的使用中,可能会因某些拓展没有编译进去,Nginx需要重新编译,如果之前有make编译后的文件没清理,需要先执行make clean再执行配置和编译


③找到安装目录


Nginx默认按照目录是/usr/local/nginx

1.png


使用

whereis nginx

命令可以查找安装目录


进入nginx目录:

1.png

有四个目录

conf:配置目录,里面是各种配置文件

html:默认的网站根目录

logs:日志文件目录

sbin:存放可执行文件的目录


④启动Nginx


进入sbin目录,只有一个可执行文件


1.png


./nginx -v 查看Nginx的版本
./nginx 启动Nginx


查看进程可看到目前Nginx有两个进程:一个主进程,一个工作进程。

1.png

主进程是工作进程的父进程。


Nginx的进程已启动,我们看下是不是可以http访问了。


在浏览器输入服务器外网ip

1.png


OK,可以访问了。说明Nginx安装成功。