【Nginx】使用普通用户安装和运行Nginx经验分享

        各位做运维的小伙伴在日常工作中,可能都会习惯性的使用 root 超级用户来安装和运行 Nginx。但是,如果所在的公司有安全部门,他们就可能会强烈的建议你将 Nginx 的运行用户整改为普通用户,来提升系统的安全性。下面我来分享下自己整改的一个过程和细节经验。

        Nginx 的安装是需要使用 root 超级用户的,但是我们可以在安装命令中添加参数,让 Nginx 被安装到指定的用户和组(如 app 用户、app 组)目录下。

        安装命令如下:

./configure --prefix=/data/nginx --user=app --group=app
make
make install

 备注:如果之前已经安装过nginx,编译的参数建议和原先的参数(可以使用 ./nginx -V 命令来查看)保持一致,即在原参数的基础上增加 --user --group 参数。

        安装完成以后,还需要将 nginx.conf 配置文件中的默认的 80 监听端口,修改为 1024 以上的端口,否则使用普通启动 Nginx 时会报错、无法启动。

        上面这种,是最简单的一种情况。

        但是,如果当你的软负载环境使用了 Keepalived + Nginx 来实现双机主备,那整改起来就相对复杂一点了。因为 Keepalived 一般都是使用 root 超级用户来安装和运行的,而且我们还会将 Keepalived 注册为 Linux 系统的一个服务,即让 Keepalived 服务随操作系统一起停、启,来实现宕机后 Keepalived 服务的自动拉起。同时,我们还会在 Keepalived 的主配置里面设置自动监控 Nginx 进程的配置,即监测到 Nginx 进程不存在,Keepalived 就会通过配置信息以及对应的脚本自动拉起 Nginx 进程。

        这样就会带来一个问题,虽然我们已经将 Nginx 安装到了普通用户和组下了,但是 Keepalived 拉起后的 Nginx 进程会出现一个问题,即 master 进程是 root 超级用户,而 worker 进程是普通用户。另外, Nginx 的 pid 文件也会变成 root 超级用户和组权限,而 Nginx 的主执行程序是普通用户和组,就无法去执行配置校验和热加载。

        这个时候,我们就需要对安装在普通用户和组下面的 Nginx 的主程序的权限进行改造,来让普通用户也有权限去执行配置校验和热加载。

        上面这几段文字看起来有点绕,但是也是我们在生产环境比较常见的一种情况,希望各位小伙伴能耐心的看完,并且能理解其中的含义。

        下面我们就需要对 Nginx 的主程序的权限进行改造,很简单的几行命令:

$ cd /data/nginx/sbin/// 设置nginx主程序的用户和组权限为root
$ chown root:root ./nginx// 设置nginx主程序的权限为755
# chmod 755 ./nginx// 设置nginx主程序在普通用户权限下具备执行root权限的功能
$ chmod u+s ./nginx// 修改后的权限
# ls -ltr /data/nginx/sbin/
-rwsr-xr-x 1 root root 7145848 Feb 29 10:36 nginx

备注:这样整改以后,大家会发现使用netstat -tnlp| grep master_pid来查看端口,会发现没有数据返回了,这个时候就需要使用第一个 worker 进程的 pid 来匹配和查看即可,也就是所有代理的后端业务的应用端口都已经使用普通用户和组来运行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于R语言piecewiseSEM结构方程模型在生态环境领域技术教程

原文链接:基于R语言piecewiseSEM结构方程模型在生态环境领域技术应用https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597092&idx7&sn176695e746eccff68e04edda6521f131&chksmfa823dc3cdf5b4d5b77181eb1bd9a2d659ff38e23c7ea78d33bc1cc7d0…

vue3+Echarts实现中国地图

成品图: 准备工作: 1、创建一个vue3的项目 2、安装Echarts,最好是安装新版本或者比较稳定的版本 3、开发地图需要一个china.json文件 这里我就介绍一下如何获取china,json文件 阿里云 DataV - 数据可视化平台 (aliyun.com) 复制上面地址打开网…

直方图均衡化原理和实现

基本思想 将原始图像的直方图分布转换为一个均匀分布的直方图,这样原图中的高频率亮度值会被展宽,而低频率亮度值则被压缩,从而达到增强图像对比度的效果。 计算过程 假设我们有一个灰度图像,其像素值范围从0到L-1(…

并发编程,java实现连接池功能

1、并发编程 并发带来的问题:类中的属性值被不同的线程并发修改,而属性值的修改常常是在方法中去修改的,所以最终要解决方法被不同的线程并发执行。 并发编程的目标:同一个方法或者不同的方法,不能在不同的线程同时执…

计算机网络面经八股-HTTP请求报文和响应报文的格式?

请求报文格式: 请求行(请求方法URI协议版本)请求头部空行请求主体 请求行:GET /sample.jsp HTTP/1.1 表示使用 GET 方法请求 /sample.jsp 资源,并使用 HTTP/1.1 协议。请求头部:包含多个字段,…

Naive UI框架安装和引入使用

Naive UI介绍: 一个 Vue 3 组件库比较完整,主题可调,使用 TypeScript,注意,naive-ui 仅支持 Vue3。 1、 安装 naiva ui // 使用 npm 安装。npm i -D naive-ui 字体安 npm i -D vfonts 2、使用 直接引入&#xff…

达梦8数据库下载安装教程(windows)

写作不易,欢迎点赞~ 这里多说一嘴,如果想从Oracle把数据迁移到达梦数据库可参考我这篇文章:https://blog.csdn.net/li836779537/article/details/136642028?spm1001.2014.3001.5502 达梦8安装包(windows) 链接&…

美国洛杉矶云服务器的亮点优势

随着云计算技术的快速发展,云服务器已成为企业、个人用户追求高效、稳定、安全数据存储和运算的重要选择。在众多云服务器中,美国洛杉矶云服务器以其独特的优势脱颖而出,受到越来越多用户的青睐。本文将为您科普美国洛杉矶云服务器的亮点优势…

C++提高笔记(三)---STL容器(vector、deque)

1、vector容器 1.1vector基本概念 功能:vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展:并不是在原空间之后续接新空间&#xff0…

【PHP + 代码审计】文件包含

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

应对恶意IP攻击的有效方法

在当今数字化时代,网络攻击已经成为了互联网安全的重大挑战之一。恶意IP攻击是网络安全领域中的一种常见威胁,它可能导致数据泄露、服务中断、系统瘫痪等严重后果。因此,有效地应对恶意IP攻击至关重要。IP数据云将深入探讨如何应对恶意IP攻击…

精酿啤酒与日式料理的精致体验

当Fendi Club啤酒遇见日式料理,一场味蕾的精致盛宴就此展开。Fendi Club啤酒以其醇厚的口感和与众不同的麦香,为日式料理增添了别样的风味,而日式料理则以其精致的制作和丰富的口感,为啤酒带来了更多的层次感。 Fendi Club啤酒&am…

【论文笔记合集】ARIMA 非平稳过程通过差分转化为平稳过程

本文作者: slience_me 文章目录 ARIMA 非平稳过程通过差分转化为平稳过程文章原文具体解释详解 ARIMA 非平稳过程通过差分转化为平稳过程 文章原文 Many time series forecasting methods start from the classic tools [38, 10]. ARIMA [7, 6] tackles the foreca…

芯片公司SAP具体操作流程:从设计到生产的科技之旅

芯片公司作为现代科技产业的重要支柱,其运作涉及多个复杂环节。SAP作为一套企业资源计划系统,为芯片公司提供了从产品设计到生产制造的全方位管理支持。下面,我们就来详细科普一下芯片公司在SAP中的具体操作流程。 首先,芯片公司需…

阿里云服务器安全狗免费使用多引擎智能查杀引擎

云服务器具有按量付费、降低综合成本等诸多优势,受到很多企业的欢迎。 因此,目前使用的云服务器越来越多。 阿里云是目前云服务器中最具影响力的品牌,因此选择阿里云服务器的用户数量也是最多的。 那么阿里云服务器需要安装杀毒软件吗&#x…

CentOS 7安装MySQL及初始化操作教程

一、引言 MySQL是一款广泛使用的开源关系型数据库管理系统,适用于各种规模的应用场景。在CentOS 7系统中安装MySQL并进行初始化操作,可以为我们的应用程序提供稳定、可靠的数据存储服务。本文将详细介绍CentOS 7安装MySQL及初始化操作的步骤。 目录 一、…

C#使用SharpZipLib对文件进行压缩和解压

C#使用SharpZipLib对文件进行压缩和解压 使用SharpZipLib库 编写SharpZipLibHelper帮助类 using ICSharpCode.SharpZipLib.Zip;namespace SharpZipLib_Project {public class SharpZipLibHelper{/// <summary>/// 多个文件或文件夹压缩/// </summary>/// <pa…

序列化Serializable/Parcelable

定义 将一个对象转换成可存储或可传输的状态。&#xff08;对象转换成字节流的过程&#xff09; 作用 对象序列化后&#xff0c;可以在进程间、网络间进行传输&#xff0c;也可以做本地持久化存储 为什么要序列化 对于计算机来说&#xff0c;不认识对象只认识二进制。数据…

vue父子组件生命周期

父子组件的生命周期是一个嵌套的过程 渲染的过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted 子组件更新过程 父beforeUpdate->子beforeUpdate->子updated->父updated 父组件更…

行业认可 | 海云安上榜《2024年网络与信息安全行业全景图》多个领域

近日&#xff0c;深圳市网络与信息安全行业协会正式发布《2024年网络与信息安全行业全景图》。海云安凭借过硬的技术实力及成熟的网络与信息安全产品及服务获得行业认可&#xff0c;入围6大类目共计17项细分领域。包括&#xff1a; 业务安全&#xff08;软硬件开发安全、人工智…