Ubuntu 安装Nginx

1,233 阅读3分钟

在 Ubuntu 系统上,将 NGINX 安装到指定目录(例如 /usr/local)是完全可行的,尽管默认情况下,NGINX 会安装到 /etc/nginx/usr/sbin/nginx 等目录中。为了将 NGINX 安装到自定义目录,我们可以选择从源代码编译并安装 NGINX。

以下是安装步骤:

1. 更新系统包

首先,确保你的 Ubuntu 系统是最新的,并安装所需的依赖包:

sudo apt update
sudo apt upgrade -y

2. 安装构建 NGINX 所需的依赖

在 Ubuntu 上编译 NGINX 需要一些开发工具和库。执行以下命令来安装必要的依赖:

sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev

3. 下载 NGINX 源代码

从 NGINX 的官方网站下载最新的稳定版本源码包。

cd /usr/local/nginx  #没有就手动建一个
wget https://nginx.org/download/nginx-1.25.1.tar.gz  # 请根据需要下载最新版本
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1

4. 配置编译选项

在编译 NGINX 之前,需要使用 ./configure 命令来指定编译选项。这是将 NGINX 安装到指定目录的关键步骤。

./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf \
            --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module \
            --with-pcre --with-zlib=/usr/local/nginx
  • --prefix=/usr/local/nginx:指定安装路径为 /usr/local/nginx
  • --conf-path:指定 NGINX 配置文件的位置。
  • --pid-path:指定 NGINX 进程 ID 文件的位置。
  • --with-http_ssl_module:启用 SSL 模块。
  • --with-pcre:启用 PCRE 模块(用于正则表达式支持)。
  • --with-zlib=/usr/local/nginx:如果你有自定义的 zlib 库,可以指定路径。

如果你不需要某些模块,可以通过调整配置选项来禁用它们。

5. 编译并安装 NGINX

配置完成后,运行以下命令来编译并安装 NGINX:

make
sudo make install

这将 NGINX 安装到 /usr/local/nginx 目录下。

6. 启动 NGINX

安装完成后,使用以下命令启动 NGINX 服务:

sudo /usr/local/nginx/sbin/nginx

你可以通过访问服务器的 IP 地址或 localhost 来验证 NGINX 是否成功启动:

http://localhost/

如果一切正常,你应该看到 NGINX 默认的欢迎页面。

你可以尝试通过以下命令来检查 NGINX 是否已经正确安装:

bash
复制代码
/usr/local/nginx/sbin/nginx -v

如果安装正确,应该显示 NGINX 的版本信息。例如:

yaml
复制代码
nginx version: nginx/1.25.1

如果可以正确显示版本,那么 NGINX 已经安装成功,只是没有添加到 PATH 中。

7. 将 NGINX 可执行文件路径添加到 PATH

为了方便以后使用 nginx 命令,你可以将 /usr/local/nginx/sbin 目录添加到 PATH 环境变量中。

  1. 打开 .bashrc 文件来编辑你的环境变量:
bash
复制代码
nano ~/.bashrc
  1. 在文件的最后一行添加以下内容:
bash
复制代码
export PATH=$PATH:/usr/local/nginx/sbin
  1. 保存并关闭文件(按 Ctrl+X,然后按 Y 保存)。
  2. 使环境变量立即生效:
bash
复制代码
source ~/.bashrc
  1. 现在你应该能够通过以下命令访问 NGINX:
bash
复制代码
nginx -v

8. 配置 NGINX 服务(可选)

如果你希望 NGINX 作为系统服务运行(例如,通过 systemctl 管理),你需要手动创建一个 systemd 服务单元文件:

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

将以下内容粘贴到文件中:

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

[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PIDFile=/usr/local/nginx/nginx.pid

[Install]
WantedBy=multi-user.target

保存并退出文件后,重新加载 systemd 并启动 NGINX:

sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx

8. 停止或重新加载 NGINX

  • 停止 NGINX:
    sudo /usr/local/nginx/sbin/nginx -s stop
    
  • 重新加载 NGINX 配置:
    sudo /usr/local/nginx/sbin/nginx -s reload
    

总结

通过以上步骤,你已经成功地将 NGINX 安装到自定义目录 /usr/local/nginx。在此过程中,我们通过从源代码编译 NGINX,指定了安装目录和相关配置文件路径。你可以根据需要进一步调整 NGINX 配置文件和模块。