自动化安装Nginx

1.  指定版本号和用户;

2.  确定安装目录;

3.  确定安装编译模块;

4.  安装相关依赖;

5.  下载源码包并解压;

6.  编译安装;

7.  文件授权及临时文件清理。

#!/bin/bash

# 用户输入的Nginx版本号

NGINX_VERSION=$1   
   
# 传入用户

NGINX_USER="$2"  
  
# 定义Nginx安装目录

INSTALL_DIR="/work/nginxpwd"  

#定义编译安装模块,有需要请自己新增

MODULES="--with-http_ssl_module \
         --with-http_realip_module \
         --with-http_sub_module \
         --with-stream \
         --with-http_stub_status_module \
         --with-stream_ssl_module"

#目录检测,没有则创建

if [ -d "$INSTALL_DIR" ]; then
   echo "目录已存在..."
else
   mkdir -p "$INSTALL_DIR"
   echo "目录创建完成..."
fi

#用户检测,没有则创建

if ! id -u "$NGINX_USER" > /dev/null 2>&1; then
    useradd $NGINX_USER
fi


# 安装相关依赖

yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool GeoIP-devel wget


# 下载Nginx源码包

wget -O /tmp/nginx-${NGINX_VERSION}.tar.gz https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz

# 解压源码包

tar -zxf /tmp/nginx-${NGINX_VERSION}.tar.gz -C /tmp/

# 进入源码目录

cd /tmp/nginx-${NGINX_VERSION}

# 配置、编译并安装Nginx

./configure --prefix=$INSTALL_DIR \
            --user=$NGINX_USER \
            --group=$NGINX_USER \
            $MODULES \
            && make -j$(nproc) \
            && make install


# 清理临时文件

rm -rf /tmp/nginx-${NGINX_VERSION} /tmp/nginx-${NGINX_VERSION}.tar.gz

#调整目录用户权限

chown -R $NGINX_USER:$NGINX_USER $INSTALL_DIR

#安装成功的提示

echo "Nginx ${NGINX_VERSION} has been installed to ${INSTALL_DIR}"

传入版本号和用户进行安装

sh nginx_install.sh 1.24.0 test2

图片

#安装成功

图片

#切换到普通用户成功启动

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的端到端语音识别时代

随着深度学习的发展,语音识别由DNN-HMM时代发展到基于深度学习的“端到端”时代,这个时代的主要特征是代价函数发生了变化,但基本的模型结构并没有太大变化。总体来说,端到端技术解决了输入序列长度远大于输出序列长度的问题。 采…

【深度学习基础】使用Pytorch搭建DNN深度神经网络与手写数字识别

目录 写在开头 一、DNN的搭建 问题描述与数据集 神经网络搭建 模型训练 模型评估 模型复用 二、手写数字识别 任务描述 数据集 神经网络搭建 模型训练 模型评估 写在最后 写在开头 本文将介绍如何使用PyTorch框架搭建深度神经网络模型。实现模型的搭建、模…

《HelloGitHub》第 98 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…

PostgreSQL 远程登录postgres用户不需要密码?免密登录权限设置

PostgreSQL 安装之后,发现登录postgres用户时不需要密码。原因配置远程IP时,IP 地址对应的 method 设置成了 trust。 今天安全测试反馈,pgsql有弱口令问题,于是上去改了pgsql的密码,结果问题还没解决。查看了具体的问…

PyQt5开发笔记:1.环境搭建与界面美化

推荐视频教程: https://www.bilibili.com/video/BV1LT4y1e72X?p23&vd_source7ab611f3afb3d469faad93d3996f99ba 一、打开网址,点击下载 https://build-system.fman.io/qt-designer-download 下载后,点开exe 不推荐:http…

VSCODE 常用快捷键

快捷按键 注释 CTRL /CTRL KSHIFT ALT A取消注释 CTRL /CTRL KSHIFT ALT A搜索文件 Ctrl P移动到某一行 Ctrl g打开一个新窗口 Ctrl Shift N关闭窗口 Ctrl Shift W新建文件 Ctrl N文件间切换 Ctrl Tab全部文件搜索 Ctrl Shift F全屏 F11 打开文件出现中文乱码 文件右下角…

JavaScript的内存管理机制

No.内容链接1Openlayers 【入门教程】 - 【源代码示例300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3Cesium 【入门教程】 - 【源代码图文示例200】 4MapboxGL【入门教程】 - 【源代码图文示例150】 5前端就业宝典 【面试题详细答案 1000】 文章目录 一、内存…

如何处理网安发出的网络安全监督检查限期整改通知

近期,很多客户都收到了网安发出的限期整改通知。大家都比较关心的问题是,如何应对处理这些限期整改通知。后续是否有其他的影响,需要如何做进一步的优化整改和调整。今天就这些问题给大家做一些分享。 一. 为什么会有网安的网络安全检查 主…

Linux--线程的分离、线程库的地址关系的理解、线程的简单封装(二)

线程系列: 线程的认识:讲解线程的概念和线程的基本控制 线程的分离 线程分离是指将一个线程从主线程中分离出来,使其能够独立运行。当一个线程被设置为分离状态时,它结束时系统会自动回收其资源,而不需要其他线程使用…

7-12 十六进制数字判断(is_hex)---PTA实验C++

一、题目描述 本题的任务是编写函数来判断字符是否可作为十六进制数字 // 这这这也太水了吧?十六进制数字就是[0-9A-Fa-f]嘛。 输入规格 输入由多组数据构成。 每组数据开头有一个非负整数N表示后续数据的行数,然后换行。之后有N行字符串&#xff0c…

【Unity Shader入门精要 第12章】屏幕后处理效果(一)

1. 原理和过程 屏幕后处理是绑定摄像机的,通过抓取当前摄像机渲染的图像作为 SrcTextrue,然后按需依次调用处理接口,对 SrcTexture 进行处理,最后将处理完成的 DstTexture 显示到屏幕上,整个过程的调度通过 C# 脚本完…

上弦外媒新闻发稿:2024年度国外主流新闻媒体和海外媒体软文分发平台有哪些?

2024年度主流海外媒体新闻发稿和海外媒体软文分发平台有很多,下面是一些常见的和广受认可的平台: 主流新闻媒体 CNN - 美国知名新闻网络,覆盖广泛的国际新闻。BBC - 英国广播公司,提供全球新闻和深入报道。纽约时报 - 美国主流报…

解决docker容器: bash: ping: command not found, 并制作镜像

一. 出现原因 从 dockerhub 拉下来的镜像都是最轻量级的, 不会安装各种工具, 所以使用 ping, vim 等命令, 会出现 command not found 二. 解决方式 2.1 安装工具包 进入到一个正在运行的容器内部, 执行命令: apt-get update 之后会发现, 容器正在更新软件包, 不过最终会由…

四川汇聚荣聚荣科技有限公司在市场评价好吗?

随着科技行业的迅猛发展,越来越多的科技公司如雨后春笋般涌现,其中不乏一些优秀的企业。四川汇聚荣聚荣科技有限公司便是其中的一员。那么,这家公司在市场上的评价如何呢?接下来,我们将从四个方面进行详细的阐述。 一、公司概况四…

画图工具帮助工作

processon的画图工具 https://www.processon.com/ PlantUML 支持的图 时序图 时序图的语法和功能PlantUML时序图的语法:你可以有几种类型的参与者(演员等其他角色)、箭头、备注、分组...改变字体和颜色也是可行的。https://plantuml.com/z…

Find My割草机|苹果Find My技术与割草机结合,智能防丢,全球定位

割草机是一种用于修剪草坪、植被等的机械工具,它是由刀盘、发动机、行走轮、行走机构、刀片、扶手、控制部分组成。效率比人工锄草提高8至10倍,伤苗率低,除苗清洁率高。节省了除草工人的作业时间,减少了大量的人力资源。在畜牧业机…

git使用流程与规范

原文网址:git代码提交流程与规范-CSDN博客 简介 本文git提交流程与规范是宝贵靠谱的经验,它能解决如下问题: 分支差距过大,导致合代码无数的冲突合完代码后发现代码丢失分支不清晰,无法追溯问题合代码耗时很长&…

PDF盖骑缝章

在PDF文件上加盖骑缝章,您可以采取以下几种方法之一: 使用Adobe Acrobat: 打开Adobe Acrobat软件,加载PDF文件。在工具栏选择“工具”选项,找到“骑缝章”或“印章”工具。选择或上传您的骑缝章图片,将其放…

DataCube 漏洞小结

在这里分享一下通过拖取 DataCube 代码审计后发现的一些漏洞,包括前台的文件上传,信息泄露出账号密码,后台的文件上传。当然还有部分 SQL 注入漏洞,因为 DataCube 采用的是 SQLite 的数据库,所以SQL 注入相对来说显得就…

tomcat-请求url初始化

tomcat启动时会调用Lifecycle的start()方法,MapperListener.java中的方法startInternal()会被调用,此时开始了请求url映射到容器的初始化之路。首先看下private final Mapper mapper;属性,这个属性包含了请求url到容器的所有映射关系&#xf…