在Ubuntu上安装Nginx的实现过程

 更新时间:2026年04月03日 09:55:29   作者:旺旺小崔崔  
本文详细介绍了在Ubuntu系统中从源码安装Nginx的步骤,包括更新系统、安装依赖、下载源码、配置编译选项、编译安装、创建专用用户、配置Systemd服务、调整防火墙、验证安装、管理和维护Nginx等内容

在Ubuntu系统中从源码安装Nginx可以让您自定义Nginx的编译选项和模块,以满足特定需求。

以下是详细的步骤指南:

前提条件

更新系统包列表

sudo apt update
sudo apt upgrade -y

安装必要的依赖包

sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget
  • build-essential: 包含编译工具如gcc、make等。
  • libpcre3 & libpcre3-dev: 用于正则表达式支持。
  • zlib1g & zlib1g-dev: 用于压缩功能。
  • libssl-dev: 提供SSL支持。
  • wget: 用于下载源码。

步骤一:下载Nginx源码

访问Nginx官方主页,获取最新的稳定版本下载链接。

使用wget下载源码包(以Nginx 1.24.0为例,请根据最新版本替换):

cd /usr/local/src
sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz

解压源码包

sudo tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

步骤二:配置编译选项

配置编译选项可以自定义Nginx的功能和模块。以下是一个常用的配置示例:

sudo ./configure 
  --sbin-path=/usr/local/nginx/nginx 
  --conf-path=/usr/local/nginx/conf/nginx.conf 
  --error-log-path=/var/log/nginx/error.log 
  --http-log-path=/var/log/nginx/access.log 
  --with-pcre 
  --with-http_ssl_module 
  --with-http_v2_module 
  --with-http_gzip_static_module 
  --with-stream 
  --with-stream_ssl_module

说明:

  • --sbin-path: 指定Nginx可执行文件的安装路径。
  • --conf-path: 指定Nginx配置文件的位置。
  • --error-log-path & --http-log-path: 指定日志文件的位置。
  • --with-pcre: 启用PCRE支持(正则表达式)。
  • --with-http_ssl_module: 启用SSL模块。
  • --with-http_v2_module: 启用HTTP/2支持。
  • --with-http_gzip_static_module: 启用Gzip静态压缩模块。
  • --with-stream & --with-stream_ssl_module: 启用TCP/UDP流支持及其SSL模块。

您可以根据需求添加或删除配置选项。运行./configure --help可以查看所有可用的配置选项。

步骤三:编译和安装

编译源码

sudo make

编译过程可能需要几分钟,具体时间取决于系统性能。

安装Nginx

sudo make install

默认情况下,Nginx将被安装到之前指定的路径(如 /usr/local/nginx/)。

步骤四:创建Nginx用户和目录

创建一个专用用户运行Nginx

sudo useradd -r -s /sbin/nologin nginx

设置正确的权限

sudo chown -R nginx:nginx /usr/local/nginx

步骤五:配置Nginx为系统服务

为了方便管理Nginx,建议将其配置为systemd服务。

创建Systemd服务文件

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

在文件中添加以下内容

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
User=nginx
Group=nginx

[Install]
WantedBy=multi-user.target

重新加载Systemd守护进程

sudo systemctl daemon-reload

启动Nginx服务

sudo systemctl start nginx

设置开机自启动

sudo systemctl enable nginx

检查Nginx状态

sudo systemctl status nginx

您应该看到Nginx正在运行的状态。

步骤六:配置防火墙

确保防火墙允许HTTP和HTTPS流量。

如果使用UFW防火墙

sudo ufw allow 'Nginx Full'

重新加载防火墙规则

sudo ufw reload

步骤七:验证安装

访问Nginx默认页面

打开浏览器,访问服务器的IP地址(例如 http://your_server_ip/),您应该看到Nginx的默认欢迎页面。

检查Nginx版本

/usr/local/nginx/sbin/nginx -v

输出类似于:

nginx version: nginx/1.24.0

步骤八:管理Nginx

启动Nginx

sudo systemctl start nginx

停止Nginx

sudo systemctl stop nginx

重启Nginx

sudo systemctl restart nginx

重新加载配置

sudo systemctl reload nginx

附加步骤:配置Nginx

Nginx的主配置文件位于 /usr/local/nginx/conf/nginx.conf

您可以根据需要编辑该文件进行进一步配置。

sudo nano /usr/local/nginx/conf/nginx.conf

编辑完成后,重新加载Nginx以应用更改:

sudo systemctl reload nginx

注意事项

更新Nginx

由于是源码安装,Nginx不会自动更新。要更新Nginx,需要手动下载新版本源码,编译并安装,或使用包管理工具。

卸载Nginx

源码安装的Nginx通常位于 /usr/local/nginx/。要卸载,只需删除该目录:

sudo rm -rf /usr/local/nginx/

以及删除Systemd服务文件:

sudo rm /etc/systemd/system/nginx.service
sudo systemctl daemon-reload

日志管理

确保定期轮转Nginx日志以防止日志文件过大。可以使用 logrotate 工具进行配置。

总结

通过以上步骤,您已经成功在Ubuntu系统中从源码编译并安装了Nginx。源码安装提供了更高的灵活性,使您能够根据具体需求自定义Nginx的功能。请确保在生产环境中仔细测试配置,并定期维护Nginx以保持系统安全和稳定。

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

相关文章

  • Nginx报:Nginx - 504 Gateway Time-out问题解决办法

    Nginx报:Nginx - 504 Gateway Time-out问题解决办法

    这篇文章主要给大家介绍了关于Nginx报:Nginx - 504 Gateway Time-out问题的解决办法,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时,需要的朋友可以参考下
    2024-01-01
  • Nginx与安全相关的几个配置小结

    Nginx与安全相关的几个配置小结

    Nginx提供了一系列的安全相关参数,可以帮助加固网站安全性,本文主要介绍了Nginx与安全相关的几个配置小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Nginx本地目录映射实现代码实例

    Nginx本地目录映射实现代码实例

    这篇文章主要介绍了Nginx本地目录映射实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • nginx配置相关介绍

    nginx配置相关介绍

    本文为大家介绍一下nginx配置的相关介绍,供大家参考
    2013-02-02
  • Nginx解决转发地址时跨域的问题

    Nginx解决转发地址时跨域的问题

    这篇文章主要介绍了Nginx实现转发地址解决跨域问题的方法,文中介绍的很详细,对大家的学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数.具体示例代码大家参考下本文
    2017-08-08
  • Nginx实现https网站配置代码实例

    Nginx实现https网站配置代码实例

    这篇文章主要介绍了Nginx实现https网站配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • nginx中状态统计的实现

    nginx中状态统计的实现

    本文主要介绍了nginx中状态统计的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 内网环境nginx配置https访问的过程详解

    内网环境nginx配置https访问的过程详解

    这篇文章主要介绍了内网环境nginx配置https访问,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Django+Nginx+uwsgi服务器部署

    Django+Nginx+uwsgi服务器部署

    这篇文章介绍了Django+Nginx+uwsgi服务器部署的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论