ubuntu编译安装nginx

时间:2025-04-01 10:33:51
更新系统软件包列表:
sudo apt update
安装编译Nginx所需的软件包:
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev
  • build-essential: 该包含一些必要的软件包,如编译器和make工具等,用于编译安装Nginx;
  • libpcre3: PCRE是Perl兼容正则表达式库,Nginx中默认启用该模块;
  • libpcre3-dev: PCRE开发库,用于编译Nginx PCRE模块;
  • zlib1g-dev: Zlib库提供了压缩和解压缩数据的函数,该库被Nginx使用,并且默认启用gzip模块;
  • libssl-dev: SSL(Secure Sockets Layer)提供了安全的通信渠道,该模块使Nginx能够支持HTTPS协议。
环境准备:

先安装准备环境

sudo apt install libgd-dev

nginx下载地址:/en/

下载:
wget /download/nginx-1.20.
解压:
tar -xzvf nginx-1.20.
配置编译参数:
cd nginx-1.20.2
sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module

–prefix参数指定nginx安装目录,–with-http_ssl_module参数启用https支持。

编译安装Nginx
sudo make
sudo make install
启动nginx:
/usr/local/nginx/sbin/nginx
验证nginx是否成功安装

在浏览器中输入服务器IP地址或者域名,如果能够访问到nginx的欢迎页面,说明nginx已经成功安装。

注意:如果有防火墙或安全组等安全设备,需要对nginx开放相应的端口,比如80端口。

查看nginx进程:

ps -ef|grep nginx
配置软链接
sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
常用命令
nginx -s reload  :修改配置后重新加载生效
nginx -s reopen  :重新打开日志文件
nginx -t -c /path/to/ 测试nginx配置文件是否正确

关闭nginx:
nginx -s stop  :快速停止nginx
nginx -s quit  :完整有序的停止nginx
防火墙端口设置
sudo ufw status

如果输出结果为“Status: inactive”,说明防火墙未开启。

开启80和443端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

输出结果应该类似于:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             

可以看到80和443端口已经被允许访问。

开机启动

在Ubuntu上配置Nginx开机启动可以使用systemd服务来实现。以下是具体的步骤
1.创建Nginx服务文件
使用以下命令创建一个Nginx的systemd服务文件,文件名为:

sudo nano /etc/systemd/system/

在编辑器中输入以下内容:

[Unit]
Description=Nginx Web Server
After=

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=

注意,需要根据实际情况修改PIDFile和ExecStartPre、ExecStart、ExecReload、ExecStop的路径。

2.重新加载systemd配置
使用以下命令重新加载systemd配置文件,让新的服务文件生效:

sudo systemctl daemon-reload

3.开启Nginx服务自启动

sudo systemctl enable nginx

4.现在可以使用systemd命令来启动、停止和重启Nginx服务:

  • 启动Nginx服务:sudo systemctl start nginx
  • 停止Nginx服务:sudo systemctl stop nginx
  • 重启Nginx服务:sudo systemctl restart nginx
  • 查看Nginx服务状态:sudo systemctl status nginx