1.Nginx 编译安装:

1.1准备编译安装的基础环境:

yum install -y vim lrzsz tree screen psmisc lsof tcpdump wget ntpdate gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools iotop bc zip unzip zlib-devel bash-completion nfsutils automake libxml2 libxml2-devel libxslt libxslt-devel perl perlExtUtils-Embed

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的超集,但是两者对语
法的要求是有区别的。
  automake是⼀个从Makefile.am⽂件⾃动⽣成Makefile.in的⼯具。为了⽣成Makefile.in,
automake还需⽤到perl,由于automake创建的发布完全遵循GNU标准,所以在创建中不需要perl。
libtool是⼀款⽅便⽣成各种程序库的⼯具。
  pcre pcre-devel:在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因
为Nginx 的Rewrite模块和HTTP 核⼼模块会使⽤到PCRE正则表达式语法。
  zlip zlib-devel:nginx启⽤压缩功能的时候,需要此模块的⽀持。
  openssl openssl-devel:开启SSL的时候需要此模块的⽀持。

1.2安装Nginx:

1.2.1官⽅源码包下载地址:

https://nginx.org/en/download.html

[root@nginx-web-12 ~]# cd /usr/local/src/
[root@nginx-web-12 src]# wget https://nginx.org/download/nginx-1.20.1.tar.gz
[root@nginx-web-12 src]# tar xf nginx-1.20.1.tar.gz
[root@nginx-web-12 src]# cd nginx-1.20.1

编译是为了检查系统环境是否符合编译安装的要求,⽐如是否有gcc编译⼯具,是否⽀持编译参数当中的模
块,并根据开启的参数等⽣成Makefile⽂件为下⼀步做准备:

[root@nginx-web-12 nginx-1.20.1]# ./configure --prefix=/apps/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module \
> --with-http_v2_module \
> --with-http_realip_module \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --with-pcre \
> --with-stream \
> --with-stream_ssl_module \
> --with-stream_realip_module[root@nginx-web-12 nginx-1.20.1]# make  #编译步骤,根据Makefile⽂件⽣成相应的模块
[root@nginx-web-12 nginx-1.20.1]# make install   #创建⽬录,并将⽣成的模块和⽂件复制到相应的⽬
录:
[root@nginx-web-12 nginx-1.20.1]# useradd nginx -s /sbin/nologin -u 2000 #以普通⽤户启动nginx
[root@nginx-web-12 nginx-1.20.1]# chown nginx.nginx -R /apps/nginx/
#添加所有者所属组权限

备注:nginx完成安装以后,有四个主要的⽬录:

conf:该⽬录中保存了nginx所有的配置⽂件,其中nginx.conf是nginx服务器的最核⼼最主要的配置
⽂件,其他的.conf则是⽤来配置nginx相关的功能的,例如fastcgi功能使⽤的是fastcgi.conf和
fastcgi_params两个⽂件,配置⽂件⼀般都有个样板配置⽂件,是⽂件名.default结尾,使⽤的使⽤将
其复制为并将default去掉即可。
html:该⽬录中保存了nginx服务器的web⽂件,但是可以更改为其他⽬录保存web⽂件,另外还有⼀个
50x的web⽂件是默认的错误⻚⾯提示⻚⾯。
logs:该⽬录⽤来保存nginx服务器的访问⽇志错误⽇志等⽇志,logs⽬录可以放在其他路径,⽐
如/var/logs/nginx⾥⾯。
sbin:该⽬录⽤来保存nginx⼆进制启动脚本,可以接受不同的参数以实现不同的功能。

1.2.2验证版本及编译参数:

[root@nginx-web-12 nginx-1.20.1]# /apps/nginx/sbin/nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

1.2.3检测nginx:

[root@nginx-web-12 nginx-1.20.1]# /apps/nginx/sbin/nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful

1.2.4启动nginx

[root@nginx-web-12 nginx-1.20.1]# /apps/nginx/sbin/nginx

1.2.5测试访问nginx:

在浏览器中输入ip地址来访问nginx

1.2.6停止nginx:

[root@nginx-web-12 nginx-1.20.1]# /apps/nginx/sbin/nginx -s stop

1.2.6查看pid文件路径:

[root@nginx-web-12 nginx-1.20.1]# /apps/nginx/sbin/nginx
[root@nginx-web-12 nginx-1.20.1]# ll /apps/nginx/logs/nginx.pid

1.2.7创建Nginx⾃启动脚本:

#nginx 1.20.1

[root@nginx-web-12 nginx-1.20.1]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /apps/nginx/logs/nginx.pid
ExecStartPre=/apps/nginx/sbin/nginx -t
ExecStart=/apps/nginx/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true[Install]
WantedBy=multi-user.target

1.2.8验证Nginx⾃启动脚本:

[root@nginx-web-12 nginx-1.20.1]# systemctl daemon-reload
[root@nginx-web-12 nginx-1.20.1]# systemctl start nginx
[root@nginx-web-12 nginx-1.20.1]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@nginx-web-12 nginx-1.20.1]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since Sat 2021-11-06 10:40:04 CST; 4min 55s agoMain PID: 6413 (nginx)CGroup: /system.slice/nginx.service├─6413 nginx: master process /apps/nginx/sbin/nginx└─6414 nginx: worker processNov 06 10:40:04 nginx-web-12 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Nov 06 10:40:04 nginx-web-12 nginx[6407]: nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
Nov 06 10:40:04 nginx-web-12 nginx[6407]: nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
Nov 06 10:40:04 nginx-web-12 systemd[1]: Started The nginx HTTP and reverse proxy server.

Nginx 编译安装:相关推荐

  1. LNMP平台搭建之一:nginx编译安装

    参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html   jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...

  2. Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...

  3. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  4. linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...

  5. 宝塔Nginx编译安装headers_more模块

    前言 nginx 的 headers_more模块用于添加/修改/清除/请求/响应头的模块. 该模块主要有 4 个指令: more_set_headers 用于 添加.修改.清除 响应头 more_c ...

  6. Linux下nginx编译安装,重新添加模块

    Linux下nginx编译安装,重新添加模块 前言:编译完成后的Nginx,当我们需要新的功能模块时,要怎么重新添加呢?可以按照下面的方法试试. 1.查看nginx版本以及编译安装模块 [root@# ...

  7. 腾讯nginx编译安装

    源码编译安装 感谢云计算磊哥的开源 以下是编译安装和笔记整理 腾讯nginx编译安装 1. yum -y install gcc make zlib-devel pcre pcre-devel ope ...

  8. 【nginx】nginx编译安装

    nginx编译安装 nginx介绍 为什么要使用编译安装 编译安装详细步骤 解决软件的依赖关系,需要安装相关软件包 新建管理nginx的用户和组 下载并解压nginx 配置自己所需要的nginx的功能 ...

  9. Nginx编译安装过程中make编译报错

    Nginx编译安装过程中make编译报错 起因 1.-Werror警示报错 解决方法: 2.第二种如下的报错 解决方法: 起因 nginx编译安装过程中,往往一到 make 编译步骤就开始频繁报错,我 ...

最新文章

  1. php字符串比较函数
  2. input core input.c (1)
  3. c语言位运算_C语言自增减、逻辑运算、位运算、位移运算及三目运算操作
  4. java动态拼接String类sql
  5. jboss drools_JBoss Drools –入门
  6. Md5 Md5实现原理
  7. 《Python Cookbook 3rd》笔记(4.14):展开嵌套的序列
  8. springboot快速入门(一)——HelloWorld搭建
  9. 利用Tomcat的用户名和密码构建“永久”后门
  10. carbon安装win7 thinkpad x1_联想thinkpad x1 carbon 2017笔记本使用u启动u盘安装win7系统教程...
  11. 分布式存储--理解分布式文件系统、分布式块存储、分布式对象存储、分布式数据库
  12. mysql 8.0配置主从同步_MySQL 8.0 主从同步
  13. [redis]redis五种数据类型和应用场景
  14. 乐优商城(02)--商品分类
  15. 脉冲耦合神经网络(PCNN)的python实现
  16. Photoshop CC 2019暂存盘不足无法打开
  17. Gif动图体积如何缩小?分享一招快速压缩动图的方法
  18. 程序的依赖和引用是什么?
  19. Android 调用12306接口,聚合数据Android SDK 12306火车票查询订票演示示例 编辑
  20. 飞鱼CRM是什么?巨量引擎线索如何自动同步至CRM系统

热门文章

  1. Percona-xtraDB-cluster的安装、配置和使用
  2. 上传文件转换html异常,JS 文件互转、10 个 HTML 文件上传技巧、Web 用户体验设计提升指南、奇怪的知识——位掩码 | 思否技术周刊...
  3. linux的dbg怎样查看core,如意坊国际手机版 -官网
  4. 【leedcode】0004. 两个有序数组的中位数
  5. HTMl中内容离页面底部距离,CSS 实现内容高度不够的时候底部(footer)自动贴底
  6. 计算机系ppt比赛,计算机科学学院成功举办第四届“创意杯”PPT设计大赛
  7. Revit幕墙插件:幕墙网格线的删除方法及墙生成
  8. flex html 控制编辑,flex学习笔记 富文本编辑(一)-RichTextEditor
  9. 优秀网站必须关注的健康指标 | Web Vitals
  10. Android Compose 新闻App(一)网络框架搭建