Ubuntu环境下安装部署Nginx并设置自启动过程

 更新时间:2026年05月20日 09:52:13   作者:Rock丶  
文章主要介绍了使用wget下载Nginx及相关依赖包,解配置、编译、安装Nginx的过程,N并ginx模块配置、启动及管理等内容,并N提供ginx.service文件配置和,解决启动报错等问题

通过wget下载安装包的方式部署nginx

1. 下载nginx相关依赖包               

sudo apt-get install gcc
       sudo apt-get install libpcre3 libpcre3-dev
       sudo apt-get install zlib1g zlib1g-dev
       sudo sudo apt-get install openssl
       sudo apt-get install libssl-dev

2. 进入想下载安装包位置

cd /usr/local

3.通过wget下载nginx安装包 

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

##需要什么版本的就改成自己想要的版本就行

4. 解压nginx的安装包

sudo tar -zvxf nginx-1.24.0.tar.gz

#对应所下载的版本

5.进入解压好的nginx文件夹里面

cd nginx-1.24.0

6. 配置自己所需要的模块

sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

解释:

./configure

  • 这条命令用于配置 Nginx 的编译选项。
  • 在运行 make 和 make install 之前,需要先运行 ./configure 来定义 Nginx 的安装路径和需要包含的模块。

--prefix=/usr/local/nginx

  • 这个选项指定 Nginx 的安装目录为 /usr/local/nginx。
  • 编译完成后,Nginx 的二进制文件、配置文件、日志文件等都会被安装在这个目录中。

--with-http_stub_status_module

  • 这个选项启用 http_stub_status_module 模块。
  • 该模块提供一个简易接口,展示当前 Nginx 的一些统计信息,如活动连接数、已处理的请求数等。
  • 这个功能常用于监控和调试。

--with-http_ssl_module

  • 这个选项启用 http_ssl_module 模块。
  • 该模块允许 Nginx 支持 SSL/TLS,用于安全的 HTTPS 连接。
  • 这个模块是必须的,如果你打算使用 HTTPS 来保护你的网站或应用。

7. 编译

sudo make

 8. 安装

sudo  make install

启动命令:

打开文件夹

cd /usr/local/nginx/sbin       #打开文件夹
sudo ./nginx                        #启动nginx
sudo ./nginx -s stop            # 强制停止 Nginx
sudo ./nginx -s quit             # 优雅停止 Nginx,会等待所有请求处理完成后再关闭
sudo ./nginx -s reload         # 重新加载 Nginx 配置,而不会中断现有的连接
sudo ./nginx -t                     # 检查配置文件是否有语法错误
sudo ./nginx -v                     # 显示 Nginx 的版本号

使用 systemctl 管理 Nginx

如果需要使用systemctl管理nginx就先停止nginx 

sudo ./nginx -s stop

1.创建或编辑 nginx.service 文件

sudo nano /etc/systemd/system/nginx.service

nginx.service 配置文件内容: 复制内容粘贴

[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

保存方法退出方法:CTRL + X    然后会提示你是否确认保存   按Y  然后回车就行了。

2.重新加载 systemd 守护进程

sudo systemctl daemon-reload

3. 启用并启动 Nginx 服务

sudo systemctl enable nginx # 设置开机自启动
sudo systemctl start nginx # 启动 Nginx 服务

systemctl操作nginx命令:

sudo systemctl start nginx                     #启动 Nginx
sudo systemctl stop nginx                     #停止 Nginx
sudo systemctl restart nginx                  #重启 Nginx
sudo systemctl reload nginx                  #重新加载配置
sudo systemctl status nginx                  #检查 Nginx 状态

报错解决方式

如果运行 sudo systemctl start nginx启动命令报错的话

错误提示:

ubuntu@ip-ubuntu:/usr/local/nginx/sbin$ sudo systemctl start nginx
Job for nginx.service failed because a timeout was exceeded.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.

这个可能就是  /run/nginx.pid  这个文件没有创建权限可以把配置文件改为

运行命令:    

sudo nano /etc/systemd/system/nginx.service

[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

保存方法退出方法:CTRL + X    然后会提示你是否确认保存   按Y  然后回车就行了。

重新加载下   sudo systemctl daemon-reload    然后启动就行了

配置文件解析

nginx.service  文件名
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

说明

  • Description:对服务的描述信息。
  • After=network.target:确保网络启动后才启动 Nginx。
  • Type=forking:指明 Nginx 采用的是 forking 模式(启动时会创建一个主进程和多个子进程)。
  • PIDFile=/run/nginx.pid:指定 Nginx 进程的 PID 文件路径。如果你的系统使用不同的 PID 路径,请调整该行。
  • ExecStartPre:在启动 Nginx 前验证配置文件是否正确。
  • ExecStart:启动 Nginx 服务。
  • ExecReload:重新加载配置而不中断服务。
  • ExecStop:停止 Nginx 服务。
  • WantedBy=multi-user.target:指明服务应该在多用户模式下启动。

如果 Nginx 安装路径不同

  • 如果你的 Nginx 可执行文件不在 /usr/local/nginx/sbin/nginx,请根据实际路径修改 ExecStartPreExecStartExecReload 的值。
  • 你可以使用 which nginx 命令查找 Nginx 的安装路径。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx proxy_set_header设置自定义header的实现步骤

    nginx proxy_set_header设置自定义header的实现步骤

    在Nginx中,使用 proxy_set_header指令可以自定义header并在反向代理时传递到后端服务器,本文就来详细的介绍一下,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Nginx服务器添加Systemd自定义服务过程解析

    Nginx服务器添加Systemd自定义服务过程解析

    这篇文章主要介绍了Nginx服务器添加Systemd自定义服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • nginx 405 not allowed问题三种解决方法

    nginx 405 not allowed问题三种解决方法

    这篇文章主要给大家介绍了关于nginx 405 not allowed问题三种解决方法的相关资料,当您遇到"405 Not Allowed"错误时,通常表示服务器不允许您使用所请求的HTTP方法,以下是一些可能的解决方法,需要的朋友可以参考下
    2023-08-08
  • nginx 不同的访问路径对应项目不同的目录的实现方法

    nginx 不同的访问路径对应项目不同的目录的实现方法

    要在 Nginx 中配置不同的访问路径对应不同的项目目录,可以使用 Nginx 的 location 指令来实现,本文主要介绍了nginx不同的访问路径对应项目不同的目录的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Nginx内存占用过高排查与处理过程

    Nginx内存占用过高排查与处理过程

    Nginx内存使用率过高就像是一场暴风雨,会给我们的网站和应用带来不小的麻烦,但只要我们能够冷静分析,找出问题的根源,对症下药,就一定能够化解危机,所以本文给大家介绍了Nginx内存占用过高排查与处理过程,需要的朋友可以参考下
    2025-08-08
  • nginx proxy_cache 缓存配置详解

    nginx proxy_cache 缓存配置详解

    这篇文章主要介绍了nginx proxy_cache 缓存配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 使用Nginx和Lua进行JWT校验介绍

    使用Nginx和Lua进行JWT校验介绍

    大家好,本篇文章主要讲的是使用Nginx和Lua进行JWT校验介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2021-12-12
  • Nginx if语句加正则表达式实现字符串截断

    Nginx if语句加正则表达式实现字符串截断

    这篇文章主要介绍了Nginx if语句加正则表达式实现字符串截断功能,特殊场合下可能会需要这个功能,NGINX的奇淫技巧之一,需要的朋友可以参考下
    2015-02-02
  • 使用nginx解决前端js下载跨域问题

    使用nginx解决前端js下载跨域问题

    订单系统增加附件预览,下载的功能,但是这个附件是客户推单时推送过来的,文件连接是类似oss连接,但是是客户的域名,所以导致跨域问题,本文小编将给大家介绍如何用nginx解决前端js下载跨域问题,需要的朋友可以参考下
    2023-10-10
  • CentOS 7下安装Nginx服务器

    CentOS 7下安装Nginx服务器

    这篇文章主要为大家详细介绍了CentOS 7下安装Nginx服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论