NGINX源码安装

这篇具有很好参考价值的文章主要介绍了NGINX源码安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NGINX源码安装

安装依赖包

root执行

yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

这些包是用于开发和构建软件的一些常见库和工具。
1.gcc: GNU Compiler Collection 的缩写,是一个用于编译源代码的编译器套件。它可以将高级编程语言(如C、C++等)编译为目标机器的可执行二进制代码。NGINX就是用C写的,要编译成二进制的文件。
2. gcc-c++: 这是 GCC 编译器的 C++ 支持,它允许您编译和构建使用 C++ 编程语言编写的软件。NGINX虽然是C语言写的,但不可避免的使用到C++的一些特性。
3. make: 是一个自动化构建工具,用于处理源代码和构建过程。通过 make 命令,您可以根据预定义的规则和指令自动执行编译、链接和安装等任务。
4. libtool: 是一个用于处理共享库的工具,它允许开发者在不同的操作系统上创建和使用共享库。
5. zlib 和 zlib-devel: zlib 是一个用于数据压缩和解压缩的库,广泛用于许多软件中以减小数据的存储空间和传输带宽。zlib-devel 包含用于开发和编译 zlib 相关程序的头文件和库文件。
6. openssl 和 openssl-devel: OpenSSL 是一个开源的加密库,提供了许多加密和安全相关的功能,如 SSL/TLS 协议、数字证书管理等。openssl-devel 包含了用于开发和编译使用 OpenSSL 的程序的头文件和库文件。
7. pcre 和 pcre-devel: PCRE(Perl Compatible Regular Expressions)是一个正则表达式库,用于处理文本匹配和替换操作。pcre-devel 包含用于开发和编译使用 PCRE 的程序的头文件和库文件。

以上软件是必要的软件包,如果不安装以上包可能会存在某些配置或功能不能使用的情况。

获取源码

NGINX官方网站

NGINX有两个版本,社区版和商业版
我们使用社区版进行研究,一般情况下社区版是能满足我们的需求的

NGINX社区版又分mainline版本和stable版本, 想尝鲜用mainline,想稳定用stable,一般我们线上选择stable版本,即中间位数是偶数的版本。
NGINX源码安装,linux,NGINX,环境问题,nginx,运维,centos### 获取步骤

# 创建升级的文件夹
mkdir -p /opt/darren/upgrade
cd /opt/darren/upgrade
# 获取安装的源码
wget -c https://nginx.org/download/nginx-1.24.0.tar.gz
# 解压包
tar -zxvf nginx-1.24.0.tar.gz
cd /opt/darren/upgrade/nginx-1.24.0

各个目录的用途

[root@WDQCVM nginx-1.24.0]# ll
total 816
drwxr-xr-x 6 wdq  wdq     326 Aug 14 18:39 auto
-rw-r--r-- 1 wdq  wdq  323312 Apr 11 09:45 CHANGES
-rw-r--r-- 1 wdq  wdq  494234 Apr 11 09:45 CHANGES.ru
drwxr-xr-x 2 wdq  wdq     168 Aug 14 18:39 conf
-rwxr-xr-x 1 wdq  wdq    2611 Apr 11 09:45 configure
drwxr-xr-x 4 wdq  wdq      72 Aug 14 18:39 contrib
drwxr-xr-x 2 wdq  wdq      40 Aug 14 18:39 html
-rw-r--r-- 1 wdq  wdq    1397 Apr 11 09:45 LICENSE
-rw-r--r-- 1 root root    458 Aug 14 18:53 Makefile
drwxr-xr-x 2 wdq  wdq      21 Aug 14 18:39 man
drwxr-xr-x 3 root root    125 Aug 14 18:53 objs
-rw-r--r-- 1 wdq  wdq      49 Apr 11 09:45 README
drwxr-xr-x 9 wdq  wdq      91 Aug 14 18:39 src
[root@WDQCVM nginx-1.24.0]# 
  • auto目录,编译、支持哪些模块、当前系统有哪些特性给NGINX使用
  • CHANGES 提供了哪些特性,和BugFix,.ru是因为NGINX之父是俄罗斯人
  • conf 示例文件
  • configure编译文件
  • contrib 该文件中是一些对NGINX支持高亮显示的文件,这里的内容拷贝到VIM中可以高亮
  • html 提供了500 和index文件
  • man NGINX的帮助文件
  • src NGINX源代码
  • objs 是生成中间文件的目录
    • 其中有个ngx_modules.c的文件,这里记录所有进去的NGINX模块

编译安装

查看configure支持的参数
这里有很多参数,如果不需要变动则只需指定--prefix指定编译后的路径即可
还有带有--with-……这种默认是不会编译进NGINX的,相反 --without-……这种默认是编译进NGINX中的

[root@WDQCVM nginx-1.24.0]# ./configure --help

  --help                             print this message

  --prefix=PATH                      set installation prefix
  --sbin-path=PATH                   set nginx binary pathname
  --modules-path=PATH                set modules path
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support

  --with-http_ssl_module             enable ngx_http_ssl_module
……
  --with-http_stub_status_module     enable ngx_http_stub_status_module

  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
……
  --without-http_upstream_zone_module
                                     disable ngx_http_upstream_zone_module

  --with-http_perl_module            enable ngx_http_perl_module
……
  --with-perl=PATH                   set perl binary pathname

  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files

  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache

  --with-mail                        enable POP3/IMAP4/SMTP proxy module
 ……
  --with-stream_ssl_preread_module   enable ngx_stream_ssl_preread_module
  --without-stream_limit_conn_module disable ngx_stream_limit_conn_module
  ……
  --without-stream_upstream_zone_module
                                     disable ngx_stream_upstream_zone_module

  --with-google_perftools_module     enable ngx_google_perftools_module
……
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

  --with-debug                       enable debug logging

[root@WDQCVM nginx-1.24.0]# 

编译

cd /opt/darren/upgrade/nginx-1.24.0
mkdir -p /opt/darren/dev/
./configure --prefix=/opt/darren/dev/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-http_gzip_static_module --with-pcre  
make
make install
  • ./configure:这是运行 NGINX 配置脚本的命令。
  • --prefix=/opt/darren/dev/nginx:指定 NGINX 的安装路径为 /opt/darren/dev/nginx,这是 NGINX 被安装到的主目录。
  • --with-http_ssl_module:启用 HTTP SSL 模块,允许 NGINX 支持通过 HTTPS 提供加密的安全连接。
  • --with-http_stub_status_module:启用 HTTP Stub Status 模块,该模块提供了一个简单的状态页面,用于监控 NGINX 的运行状态和统计信息。
  • --with-stream:启用 Stream 模块,使 NGINX 能够处理基于 TCP 或 UDP 的流量。
  • --with-http_gzip_static_module:启用 HTTP Gzip Static 模块,该模块允许 NGINX 在服务器端对静态文件进行 Gzip 压缩,以提高传输效率。
  • --with-pcre:启用 PCRE(Perl Compatible Regular Expressions)模块,该模块用于支持正则表达式,通常用于 URI 路径匹配等。
  • make 和 make install 来执行完成安装操作
    在编译过程中有很多信息,这些信息只要没有报错信息即可,如果有报错信息则需要排查错误后再编译安装。

安装结束后的文件

编译的文件是

[root@WDQCVM nginx]# cd /opt/darren/dev/nginx
[root@WDQCVM nginx]# ll
total 0
drwxr-xr-x 2 root root 333 Aug 14 19:30 conf
drwxr-xr-x 2 root root  40 Aug 14 19:30 html
drwxr-xr-x 2 root root   6 Aug 14 19:30 logs
drwxr-xr-x 2 root root  19 Aug 14 19:30 sbin
[root@WDQCVM nginx]#
  • conf配置文件
  • html 静态页面
  • logs存放日志的目录
  • sbin二进制文件存放的地方

设置为服务

服务启动

# 测试语法是否有问题
[root@WDQCVM sbin]# /opt/darren/dev/nginx/sbin/nginx -t -c /opt/darren/dev/nginx/conf/nginx.conf
nginx: the configuration file /opt/darren/dev/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/darren/dev/nginx/conf/nginx.conf test is successful
# 启动
[root@WDQCVM sbin]# /opt/darren/dev/nginx/sbin/nginx -c /opt/darren/dev/nginx/conf/nginx.conf
[root@WDQCVM sbin]# ps -ef|grep nginx
root      6677     1  0 19:35 ?        00:00:00 nginx: master process /opt/darren/dev/nginx/sbin/nginx -c /opt/darren/dev/nginx/conf/nginx.conf
nobody    6678  6677  0 19:35 ?        00:00:00 nginx: worker process
root      6680  1148  0 19:35 pts/0    00:00:00 grep --color=auto nginx
[root@WDQCVM sbin]# 

将NGINX设置为服务

[root@WDQCVM sbin]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network. target remote-fs.target nss -lookup. target

[Service]
Type=forking
PIDFile=/opt/darren/dev/nginx/logs/nginx.pid
ExecStartPre=/opt/darren/dev/nginx/sbin/nginx -t -c /opt/darren/dev/nginx/conf/nginx.conf
ExecStart=/opt/darren/dev/nginx/sbin/nginx -c /opt/darren/dev/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

服务重载

systemctl daemon-reload

以服务的方式启动

[root@WDQCVM sbin]# systemctl start nginx
[root@WDQCVM sbin]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-08-14 19:40:15 CST; 1s ago
     Docs: https://nginx.org/en/docs/
  Process: 6737 ExecStart=/opt/darren/dev/nginx/sbin/nginx -c /opt/darren/dev/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
  Process: 6736 ExecStartPre=/opt/darren/dev/nginx/sbin/nginx -t -c /opt/darren/dev/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 6739 (nginx)
   CGroup: /system.slice/nginx.service
           ├─6739 nginx: master process /opt/darren/dev/nginx/sbin/nginx -c /opt/darren/dev/nginx/conf/nginx.conf
           └─6740 nginx: worker process

Aug 14 19:40:15 WDQCVM systemd[1]: [/usr/lib/systemd/system/nginx.service:6] Failed to add dependency on -lookup., ignoring: Invalid argument
Aug 14 19:40:15 WDQCVM systemd[1]: [/usr/lib/systemd/system/nginx.service:6] Failed to add dependency on target, ignoring: Invalid argument
Aug 14 19:40:15 WDQCVM systemd[1]: Starting nginx - high performance web server...
Aug 14 19:40:15 WDQCVM nginx[6736]: nginx: the configuration file /opt/darren/dev/nginx/conf/nginx.conf syntax is ok
Aug 14 19:40:15 WDQCVM nginx[6736]: nginx: configuration file /opt/darren/dev/nginx/conf/nginx.conf test is successful
Aug 14 19:40:15 WDQCVM systemd[1]: Started nginx - high performance web server.
[root@WDQCVM sbin]# 

设置为开机启动文章来源地址https://www.toymoban.com/news/detail-649698.html

[root@WDQCVM sbin]# systemctl  enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@WDQCVM sbin]

到了这里,关于NGINX源码安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在centos7系统源码安装nginx+mysql+php+go

    以下安装说明仅供参考,请根据实际情况修改配置,进行软件编译安装 软件安装也可以参考阿里云的\\\"建站教程\\\": 云服务器ECS自助建站的流程_云服务器 ECS-阿里云帮助中心 ssl证书配置参考: SSL 证书 Nginx 服务器 SSL 证书安装部署-证书安装-文档中心-腾讯云 一、linux 环境:C

    2024年02月16日
    浏览(56)
  • 【运维】Linux安装Nginx并部署前端项目的两种方式【内/外网-保姆级教程】

    目录 第一种方式 1准备nginx安装包并解压 2执行以下命令,安装nginx依赖包 3编译安装nginx 4验证安装 第二种方式 1下载所需要的安装包 2安装步骤 2.1将下载的完整文件夹通过压缩包的形式,上传到你的路径下解压. 2.2 进入到gcc文件夹下,执行命令: 2.3进入到gcc-c++文件夹下,执

    2024年02月04日
    浏览(51)
  • CentOS 7.6环境下Nginx1.23.3下载安装配置使用教程

    这篇文章主要介绍了CentOS 7.6环境下Nginx下载安装配置使用教程,学习nginx的朋友可以参考一下 使用如下命令进行下载 wget http://nginx.org/download/nginx-1.23.3.tar.gz 项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。 判断?包名是否安装 rpm -q ?包名 yum install -y gcc gcc-c++ 注:wget http

    2024年02月10日
    浏览(53)
  • Linux 环境 nginx安装

    确定环境是有网的环境,且yum源可用; 在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器,但美中不足的是仅支持http协议,不支持https协议。 http协议:协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一

    2024年02月13日
    浏览(46)
  • Linux CentOS 7.6安装nginx详细保姆级教程

    1、进入home文件并创建nginx文件夹用来存放nginx压缩包 2、下载nginx,我这里下载的是Nginx 1.24.0版本,如果要下载新版本可以去官网进行下载:https://nginx.org/en/download.html wget下载命令: 3、解压文件 4、编译和安装 Nginx安装完成后,默认自动创建 /usr/local/nginx 目录 1、防火墙开启80端

    2024年01月23日
    浏览(56)
  • Linux环境下nginx安装详细教程,一步步装上nginx

    安装Nginx本机环境 CentOS7.9 下载Nginx安装包Linux版: Nginx官网下载:https://nginx.org/en/download.html 下载Stable version(即稳定版)   将压缩包放入系统: 解压: tar -zxvf nginx-1.22.1.tar.gz 解压成功:   执行 ./configure 配置命令: 这里提示 ./configure:error:C compiler cc is not found,是缺少依赖包,

    2023年04月11日
    浏览(40)
  • linux[armbian]环境安装nginx

    下载Nginx: 访问[Nginx官方网站](https://nginx.org/),在下载页面找到最新版本的Nginx。可以选择稳定版本或开发版本,然后点击相应的下载链接。 安装依赖项: 在安装Nginx之前,需要安装一些必要的依赖项,例如编译工具和库。对于基于Debian或Ubuntu的系统,可以使用以下命令安

    2024年02月12日
    浏览(44)
  • linux环境安装使用nginx详解

      Nginx 是一款 轻量级 的 Web 服务器/ 反向代理 服务器及 电子邮件 (IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少, 并发 能力强,事实上

    2024年02月15日
    浏览(40)
  • 【运维】Linux安装Nginx并部署前端项目的两种方式【内 外网-保姆级教程】_linux部署前端项(1)

    1准备nginx安装包并解压 2执行以下命令,安装nginx依赖包 3编译安装nginx 4验证安装 第二种方式 1下载所需要的安装包 2安装步骤 2.1将下载的完整文件夹通过压缩包的形式,上传到你的路径下解压. 2.2 进入到gcc文件夹下,执行命令: 2.3进入到gcc-c++文件夹下,执行命令: 2.4检查

    2024年04月14日
    浏览(61)
  • Linux安装Nginx,源码安装及创建软连接

    Nginx是一个功能强大、高性能、可扩展、易用和安全的Web服务器和反向代理服务器,被广泛应用于企业级和互联网领域 可扩展性:Nginx可以通过添加各种模块和插件来扩展其功能,包括HTTP流控制、SSL加密、压缩和解压缩、访问控制等。 高可靠性:Nginx采用分布式架构,有多种

    2023年04月27日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包