专栏首页JAVA乐园Nginx系列:Nginx源码安装

Nginx系列:Nginx源码安装

阅读文本大概需要3分钟。

Nginx是使用C语言开发的,建议部署在Linux操作系统上,当然也可以安装在Windows操作系统安装Windows版本的Nginx,本文演示在CentOS操作系统上安装源码安装Nginx。

0x01:安装依赖库

以下命令均需root权限执行

  • gcc 安装

源码安装 Nginx需要对在官网下载的Nginx源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要先安装

yum install gcc gcc-c++
  • PCRE pcre-devel 安装

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

yum install -y pcre pcre-devel
  • zlib 安装

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

yum install -y zlib zlib-devel
  • OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。Nginx不仅支持 http 协议,而且支持 https(即在ssl协议上传输http),所以需要在 CentOS安装 OpenSSL 库。

yum install -y openssl openssl-devel

以上安装可以整合成一条命令

yum -y install gcc gcc-c++ pcre pcre-devel \
 zlib zlib-devel openssl openssl-devel

0x02:创建Nginx用户及Nginx用户组

先创建一个名为nginx且没有登录权限的用户和一个名为nginx的用户组

  • 创建Nginx用户组

创建`nginx`用户组(`-r`选项表示创建一个系统用户组)

groupadd -r nginx

创建用户并加入到nginx系统用户组

  • 创建Nginx用户
useradd -r -g nginx -s /sbin/nologin -d /usr/local/nginx -M nginx

-r: 添加系统用户( 这里指将要被创建的系统用户`nginx`)

-g: 指定要创建的用户所属组( 这里指添加新系统用户`nginx`到`nginx`系统用户组 )

-s: 新帐户的登录`shell`( `/sbin/nologin` 这里设置为将要被创建系统用户`nginx`不能用来登录系统 )

-d: 新帐户的主目录( 这里指定将要被创建的系统用户`nginx`的家目录为 `/usr/local/nginx` )

-M: 不要创建用户的主目录( 也就是说将要被创建的系统用户`nginx`不会在 `/home` 目录下创建 `nginx` 家目录 )

0x03:源码安装Nginx

  • 下载Nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
  • 解压
tar -zxvf nginx-1.16.1.tar.gz -C ./nginx
  • 编译安装Nginx
cd ./nginx/nginx-1.16.1/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 
make
make install

这样就安装成功了。安装成功后,如何要查看Nginx内置模块或者查看自定义模块

查看Nginx内置模块

cat ./auto/options | grep YES

查看自定义模块

目前还没有添加第三方自定义模块

添加第三方模块

/usr/local/nginx/sbin/nginx -V
/root/nginx/nginx-1.16.1/configure 上条命令的configure arguments值 \
       --add-module=THIRD_MODULE_PATH

实际上就是下载对应版本的Nginx源码包、解压后,然后带上之前的./configure参数 + 第三方模块重新编译

0x04:验证是否安装成功

一些常用的启动、关闭、加强配置命令

cd /usr/local/nginx/sbin/
./nginx       # 启动
./nginx -s stop  #关闭
./nginx -s quit
./nginx -s reload  #重新加载配置

启动成功后访问:http://127.0.0.1:8080

./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

0x05:生产环境一些非常有用的经验

  • 先停止再启动(推荐)

对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。

./nginx -s quit
./nginx
  • 修改nginx.conf后,重新加载配置文件

当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用nginx -s reload不用先停止nginx,再启动nginx。即可将配置信息在 nginx中生效。

./nginx -s reload
  • 开机自启动Nginx

在rc.local增加启动代码就可以了

vi /etc/rc.local

即增加一行

/usr/local/nginx/sbin/nginx

设置rc.local文件执行权限

chmod 755 rc.local
参考:
https://www.cnblogs.com/liujuncm5/p/6713784.html
https://segmentfault.com/a/1190000016498647

往期精彩

01 Sentinel如何进行流量监控

02 Nacos源码编译

03 基于Apache Curator框架的ZooKeeper使用详解

04 spring boot项目整合xxl-job

05 互联网支付系统整体架构详解

本文分享自微信公众号 - JAVA乐园(happyhuangjinjin88),作者:java乐园

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx系列:后端服务应用健康检测

    严格来说,nginx到目前为止没有针对负载均衡后端节点的健康检测的模块,但是可以通过proxy_next_upstream来间接实现,但prox...

    java乐园
  • 搭建分布式文件系统FastDFS

    FastDFS(Fast Distributed File System)是一款开源轻量级分布式文件系统;

    java乐园
  • Nginx系列:https配置

    主要原因是HTTP数据传输时没有对数据进行加密,所以导致数据不安全。而HTTPS在HTTP上加了一层,对数据进行加密,这样就保证了数据的安全性。防止传输的数据过...

    java乐园
  • 详解Centos7中Nginx开机自启动的解决办法

    本篇文章主要介绍了详解Centos7中Nginx开机自启动的解决办法,具有一定的参加价值,有兴趣的可以了解一下。

    习惯说一说
  • linux服务器nginx的卸载和安装

    刚接触的linux服务器上,nginx配置乱的有点令人发指,就把老的卸载了重新装一下。

    木子墨
  • windows安装nginx注册为服务的正确姿势 并设置开机自启 实践笔记

    cookily
  • MAC下安装nginx的正确姿势 实践笔记

    cookily
  • Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt...

    搜云库
  • nginx快速入门

    本篇文章我们来学习一下nginx,那么首先摆在我们面前的问题就是:何为nginx?nginx能做什么?

    wangweijun
  • nginx(安装)

    官网: http://nginx.org/ 官方文档: http://nginx.org/en/docs/

    lpe234

扫码关注云+社区

领取腾讯云代金券