【Nginx】编译安装(Centos)

ops/2024/11/2 15:54:11/

下载编译包

https://nginx.org/download/nginx-1.24.0.tar.gz

解压: tar -zxvf nginx-1.24.0.tar.gz 

进入目录:  nginx-1.24.0

配置

 ./configure --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module 

 如果不加扩展模块就直接执行:  ./configure

提示缺少:rewrite

./configure: error: the HTTP rewrite module requires the PCRE library

安装: sudo yum install pcre pcre-devel  

提示缺少: OpenSSL

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

然后安装: 

 yum install openssl 

 yum install openssl-devel

然后执行:

 ./configure --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module

成功了:

creating objs/Makefile (生成了编译配置文件,)

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

---生成了一堆配置

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

编译

   确保安装了gcc,然后

    make

安装

[root@master01 nginx-1.24.0]# make install
make -f objs/Makefile install
make[1]: Entering directory `/root/soft/nginx-1.24.0'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
        || mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
        || mv '/usr/local/nginx/sbin/nginx' \
                '/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
        || mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \
        || cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \
        || cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params \
        '/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf' \
        || cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params' \
        || cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params \
        '/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params' \
        || cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params \
        '/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
        || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
        || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
        || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
        || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
        || mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/root/soft/nginx-1.24.0'

查看安装目录

whereis nginx

启动

 cd /usr/local/nginx/sbin/

./nginx

启动结果

ps -aux | grep nginx

[root@master01 sbin]# ./nginx 
[root@master01 sbin]# ps -aux | grep nginx
root      30808  0.0  0.0  46136   956 ?        Ss   17:33   0:00 nginx: master process ./nginx
nobody    30809  0.0  0.0  48672  3780 ?        S    17:33   0:00 nginx: worker process
root      30828  0.0  0.0 112820  2308 pts/2    S+   17:33   0:00 grep --color=auto nginx

       Nginx 在启动时,默认情况下会使用一个主进程(master process)和多个工作进程(worker processes)。主进程通常以 root 用户权限运行,以便能够绑定到特权端口(如 80 和 443),而工作进程则通常以一个非特权用户(如 nobody)的身份运行,以提高安全性。

如何更改工作进程的用户

vi /etc/nginx/nginx.conf

把: user nobody;  改成xxxx  然后启动后就是 woker进程就是xxx用户组

一些配置介绍

     proxy_temp_file_write_size属性。属性作用:当你访问资源信息超过该参数设置的大小时,nginx会先将文件写入临时目录(这里是:/var/lib/nginx/tmp)。

,如果使用root用户执行nginx -t命令,则会导致临时文件(fastcgi、scgi、uwsgi、client_body、proxy)目录权限所有者被更改为nobody

 client_body_temp、fastcgi_temp、proxy_temp、scgi_temp、uwsgi_temp


http://www.ppmy.cn/ops/130463.html

相关文章

七、Go语言快速入门之函数func

文章目录 函数:one: GO语言函数介绍:two: 函数的参数和返回值:star2: 按值传递和按引用传递:star2: 给返回值命名:star2: 空白符:star2: 改变外部变量 :three: 传递变长参数:four: defer和追踪:star2: defer使用:star2: defer实现代码追踪 :five: 递归函数:six: 匿名函数(闭包)…

服务攻防之开发组件安全

我们来了解两个比较火的开发组件的安全问题&#xff0c;一个是log4j&#xff0c;一个是fastjson。我们从它的原理到复现来对他进行学习&#xff01;这篇文章我们先来学习一下log4j&#xff01; Log4j2远程命令执行&#xff08;CVE-2021-44228&#xff09; 1、什么是 log4j 和…

vscode和pycharm在当前工作目录的不同|python获取当前文件目录和当前工作目录

问题背景 相信大家都遇到过一个问题&#xff1a;一个项目在vscode&#xff08;或pycharm&#xff09;明明可以正常运行&#xff0c;但当在pycharm&#xff08;或vscode&#xff09;中时&#xff0c;却经常会出现路径错误。起初&#xff0c;对于这个问题&#xff0c;我也是一知…

[论文阅读]Detecting Pretraining Data from Large Language Models

Detecting Pretraining Data from Large Language Models http://arxiv.org/abs/2310.16789 这篇文章正式提出了Min-k%方法来实现成员推理攻击 贡献 介绍了WIKIMIA动态基准测试。旨在定期自动评估任何新发布的预训练 LLMs。通过利用 Wikipedia 数据时间戳和模型发布日期&am…

从 classList 到 DOMTokenList: 简化类名管理的工具

引言 在现代的网页开发中, 与用户界面交互的核心是操作和控制 DOM。 其中, 处理元素的外观和交互是不可或缺的一个环节, 而其中 classList 和 DOMTokenList 作为一个强大工具, 为开发人员提供了便捷的方式来管理 DOM 元素的类名。 在这篇文章中, 我们将简单梳理下 classList …

SpringBoot整合minio服务

这里我选用的是JDK1.8 SpringBoot2.3.12.RELEASE 一、导入依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.2</version> </dependency> 二、导入工具类 注意&#xff1a;需要在…

NET Framework的AOP实施方法1 ContextBoundObject

NET Core的AOP实施方法1 DispatchProxy NET Framework的AOP实施方法1 ContextBoundObject NET Framework的AOP实施方法2 RealProxy 源码见Github ContextBoundObject NET Framework需要实现AOP&#xff0c;可以借助于System.Runtime.Remoting.Contexts命名空间中的ContextBo…

动态ip如何自动更换ip

在探讨如何自动更换动态IP地址时&#xff0c;我们首先需要理解动态IP的基本概念。IP地址&#xff0c;即互联网协议地址&#xff0c;分配给每台连接到互联网的设备的唯一标识符。与传统静态IP地址不同&#xff0c;动态IP地址是由网络服务提供商&#xff08;ISP&#xff09;动态分…