Linux下源码编译安装Nginx1.24及服务脚本实战

devtools/2025/1/16 21:52:50/

 1、下载Nginx

[root@localhost ~]# wget -c https://nginx.org/download/nginx-1.24.0.tar.gz

2、解压

[root@localhost ~]# tar xf nginx-1.24.0.tar.gz -C /usr/local/src/

3、安装依赖

[root@localhost ~]# yum install gcc gcc-c++ make pcre-devel openssl-devel -y

4、 准备 Nginx 的编译环境,通过./configure 脚本,定义Nginx 安装后的根目录、可执行文件的位置、访问日志和错误日志的路径,以及主进程 PID 文件的存储位置

[root@localhost ~]# cd /usr/local/src/nginx-1.24.0/
[root@localhost nginx-1.24.0]# mkdir -p /var/log/nginx
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx \
> --sbin-path=/usr/sbin/nginx \
> --http-log-path=/var/log/nginx/access.log \
> --error-log-path=/var/log/nginx/error.log \
> --pid-path=/run/nginx.pid

5、编译安装

[root@localhost nginx-1.24.0]# make[root@localhost nginx-1.24.0]# make install

6、编写服务脚本

[root@localhost ~]# vim /etc/systemd/system/nginx.service
[root@localhost ~]# cat /etc/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/run/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.
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true[Install]
WantedBy=multi-user.target

7、重新加载systemd配置,启用并启动服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable nginx.service
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /etc/syste                                                                            md/system/nginx.service.
[root@localhost ~]# systemctl start nginx.service

8、检查服务状态

9、测试nginx响应

或者在浏览器访问http:IP,出现以下页面则安装成功

10、测试重载和停止服务 

[root@localhost ~]# systemctl reload nginx.service
[root@localhost ~]# systemctl stop nginx.service


http://www.ppmy.cn/devtools/151067.html

相关文章

python学opencv|读取图像(三十二)使用cv2.getPerspectiveTransform()函数制作透视图-变形的喵喵

【1】引言 前序已经对图像展开了平移、旋转缩放和倾斜拉伸技巧探索,相关链接为: python学opencv|读取图像(二十八)使用cv2.warpAffine()函数平移图像-CSDN博客 python学opencv|读取图像(二十…

es,单个节点磁盘使用率高

背景: 磁盘使用率不均匀,一般是因为存在大分片,分片数和机器数不匹配引起的。 这次出现的问题排除了,分片问题。 一个节点使用到87%, 其它节点60% 左右, 原因: 是因为升级配置数据迁移的时候 迁…

android 主题都表示什么意思

Theme.AppCompat Theme.AppCompat 是一个兼容性主题,用于确保应用在不同版本的 Android 系统上都能保持一致的外观和行为。它提供了 Material Design 的样式,并且兼容 Android 2.1(API 级别 7)及以上版本。 Theme.AppCompat&#…

docker run一个镜像如何指定最大可使用的内存大小、cpu大小

在 Docker 中,你可以通过 --memory 和 --cpus 参数来指定容器的最大内存和 CPU 限制。这样可以确保容器不会超出特定的资源限制,从而避免影响主机的其他进程。 1. 限制内存(--memory) 通过 --memory 或 -m 参数,你可…

iOS - Objective-C 底层中的内存屏障

1. 基本实现 // objc-os.h 中的内存屏障实现 #define OSMemoryBarrier() __sync_synchronize()// ARM 架构特殊处理 static ALWAYS_INLINE void OSMemoryBarrierBeforeUnlock() { #if defined(__arm__) || defined(__arm64__)OSMemoryBarrier(); #endif } 2. 解锁前的内存屏…

【编程语言】C/C++语言常见标准和规范

C/C 是两种功能强大且广泛使用的编程语言。尽管它们没有像 Java 那样强制性的命名规则,但为了提高代码的可读性和可维护性,遵循一些普遍认同的编程规范和标准仍然是非常重要的。本文将探讨 C/C 编程中的一些命名规范及标准,以帮助开发者编写更…

Java开发防止SQL注入攻击

在Java编程过程中,防止SQL注入攻击是非常重要的安全措施。以下是常用的防注入攻击措施及其原理: 1. 使用预编译语句(PreparedStatement) 原理:PreparedStatement 是 JDBC 提供的一种接口,它允许 SQL 语句…

【Leetcode 每日一题】3066. 超过阈值的最少操作数 II

问题背景 给你一个下标从 0 0 0 开始的整数数组 n u m s nums nums 和一个整数 k k k。 一次操作中,你将执行: 选择 n u m s nums nums 中最小的两个整数 x x x 和 y y y。将 x x x 和 y y y 从 n u m s nums nums 中删除。将 m i n ( x , y…