Nginx 下载与安装教程 – wiki基地

Nginx 下载与安装教程

Nginx(发音为 “engine X”)是一个高性能的 HTTP 和反向代理服务器,也可以用作 IMAP/POP3/SMTP 代理服务器。它以其稳定性、丰富的功能集、简单的配置文件和低资源消耗而闻名。本文将详细介绍如何在不同操作系统上下载和安装 Nginx。

一、 Nginx 下载

访问 Nginx 官方网站下载页面:http://nginx.org/en/download.html

您会看到几个不同的版本:
* Mainline version (主线版本):包含最新功能和 bug 修复,但可能不如稳定版本经过充分测试。
* Stable version (稳定版本):经过充分测试,推荐用于生产环境。
* Legacy versions (历史版本):旧版本,通常不推荐使用。

根据您的需求选择合适的版本。对于大多数用户而言,稳定版本是最佳选择。下载页面会提供适用于不同操作系统的预编译包或源码包。

二、 Nginx 安装

Nginx 的安装方式因操作系统的不同而有所差异。以下将介绍在 Windows 和 Linux (以 Ubuntu 为例) 上的安装方法。

1. Windows 系统安装

在 Windows 上安装 Nginx 相对简单,只需下载并解压即可。

  1. 下载 Nginx for Windows:
    访问官方下载页面,找到 Windows 版本(通常以 nginx-x.x.x.zip 命名)并下载。

  2. 解压文件:
    将下载的 zip 文件解压到您希望安装 Nginx 的目录,例如 C:\nginx。解压后,您会看到一个 nginx-x.x.x 文件夹,其中包含以下主要文件和目录:

    • conf: 存放 Nginx 的配置文件。
    • html: 存放默认的网页文件(index.html)。
    • logs: 存放 Nginx 的日志文件。
    • nginx.exe: Nginx 的主程序。
  3. 启动 Nginx:
    打开命令提示符(CMD)或 PowerShell,切换到 Nginx 的安装目录(例如 cd C:\nginx)。然后执行以下命令启动 Nginx:
    bash
    start nginx

    您也可以直接双击 nginx.exe 启动,但这样可能看不到启动信息或错误。

  4. 验证安装:
    打开您的浏览器,访问 http://localhost/。如果看到 “Welcome to nginx!” 页面,则表示 Nginx 已成功启动。

  5. 停止/重启 Nginx:

    • 停止 Nginx:
      bash
      nginx -s stop # 快速停止
      nginx -s quit # 平滑停止(等待当前请求处理完毕)
    • 重新加载配置(不停止服务):
      在修改 Nginx 配置文件后,可以使用此命令让配置生效,而无需停止服务。
      bash
      nginx -s reload
    • 检查 Nginx 进程:
      bash
      tasklist /fi "imagename eq nginx.exe"

2. Linux 系统安装 (以 Ubuntu/Debian 为例)

在 Linux 系统上,通常推荐使用包管理器进行安装,这样可以方便地管理依赖和更新。

方法一:使用 apt 包管理器 (推荐)

  1. 更新包列表:
    在终端中执行以下命令,确保您的系统包列表是最新的:
    bash
    sudo apt update

  2. 安装 Nginx:
    bash
    sudo apt install nginx

    系统会提示您确认安装,输入 Y 并回车。

  3. 启动 Nginx 服务:
    安装完成后,Nginx 服务通常会自动启动。您可以使用以下命令检查其状态:
    bash
    sudo systemctl status nginx

    如果 Nginx 未运行,可以使用以下命令启动它:
    bash
    sudo systemctl start nginx

  4. 设置开机自启:
    bash
    sudo systemctl enable nginx

  5. 调整防火墙 (如果适用):
    如果您的服务器启用了防火墙(如 ufw),您需要允许 HTTP 和 HTTPS 流量通过。
    bash
    sudo ufw allow 'Nginx HTTP'
    sudo ufw allow 'Nginx HTTPS'
    sudo ufw reload

    您可以使用 sudo ufw status 查看防火墙规则。

  6. 验证安装:
    在浏览器中输入您的 Linux 服务器的 IP 地址或域名。如果看到 “Welcome to nginx!” 页面,则表示安装成功。

方法二:从源码编译安装 (适用于需要特定版本或自定义配置的用户)

从源码编译安装 Nginx 提供了更大的灵活性,但也更为复杂。

  1. 安装编译依赖:
    bash
    sudo apt update
    sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

    • build-essential: 包含编译所需的工具链。
    • libpcre3, libpcre3-dev: 用于支持正则表达式。
    • zlib1g, zlib1g-dev: 用于支持 Gzip 压缩。
    • libssl-dev: 用于支持 HTTPS。
  2. 下载 Nginx 源码:
    访问 Nginx 官方下载页面,下载您希望安装的 Nginx 源码包(通常是 .tar.gz 格式)。
    bash
    wget http://nginx.org/download/nginx-x.x.x.tar.gz

    x.x.x 替换为您下载的版本号。

  3. 解压源码包:
    bash
    tar -zxvf nginx-x.x.x.tar.gz
    cd nginx-x.x.x

  4. 配置编译选项:
    在编译前,您可以使用 ./configure 脚本来配置 Nginx 的安装路径、模块以及其他编译选项。
    bash
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module

    • --prefix=/usr/local/nginx: 指定 Nginx 的安装目录。
    • --with-http_ssl_module: 启用 HTTP SSL/TLS 模块(支持 HTTPS)。
    • --with-http_gzip_static_module: 启用静态文件 Gzip 压缩模块。
    • --with-http_stub_status_module: 启用状态监控模块。
      您可以根据需要添加或移除其他模块。
  5. 编译和安装:
    bash
    make
    sudo make install

  6. 创建软链接 (可选):
    为了方便,可以将 Nginx 命令添加到系统 PATH 环境变量中,或创建软链接:
    bash
    sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

  7. 启动 Nginx:
    bash
    sudo /usr/local/nginx/sbin/nginx

  8. 验证安装:
    在浏览器中访问服务器 IP 或域名。

三、 Nginx 基本配置 (Windows & Linux 共通)

Nginx 的核心配置在 nginx.conf 文件中。
* Windows: 位于安装目录的 conf 文件夹内(例如 C:\nginx\conf\nginx.conf)。
* Linux (apt 安装): 位于 /etc/nginx/nginx.conf
* Linux (源码安装): 位于 --prefix 指定目录下的 conf 文件夹内(例如 /usr/local/nginx/conf/nginx.conf)。

一个简单的 nginx.conf 结构示例如下:

“`nginx

全局块

user nginx; # 工作进程的用户
worker_processes auto; # 工作进程数量,通常设置为 CPU 核心数或 auto

error_log /var/log/nginx/error.log warn; # 错误日志路径和级别
pid /var/run/nginx.pid; # Nginx 主进程的 PID 文件

events {
worker_connections 1024; # 每个工作进程的最大连接数
}

http {
include /etc/nginx/mime.types; # 包含 MIME 类型定义
default_type application/octet-stream; # 默认文件类型

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main; # 访问日志路径和格式

sendfile        on; # 启用高效文件传输模式
#tcp_nopush     on; # 配合 sendfile 使用,提高网络效率

keepalive_timeout  65; # 客户端连接保持活动的超时时间

#gzip  on; # 启用 gzip 压缩

server {
    listen       80; # 监听端口
    server_name  localhost; # 服务器域名或IP

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html; # 网站根目录
        index  index.html index.htm; # 默认首页文件
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

# another virtual host using mix of IP-based and name-based virtual hosts
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename.net or.net;
#    root         html;
#    index        index.html index.htm;
#}

# HTTPS server
#
#server {
#    listen       443 ssl;
#    server_name  localhost;

#    ssl_certificate      cert.crt;
#    ssl_certificate_key  cert.key;

#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m;

#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

}
“`

修改配置后,请务必使用以下命令检查配置文件的语法,然后重新加载 Nginx:

“`bash
nginx -t # 检查配置文件语法 (Windows)
sudo nginx -t # 检查配置文件语法 (Linux)

nginx -s reload # 重新加载配置 (Windows)
sudo systemctl reload nginx # 重新加载配置 (Linux, 如果是 systemd 管理)
“`

总结

Nginx 的下载和安装过程相对直接,但在不同操作系统上操作略有不同。无论您选择哪种安装方式,理解 Nginx 的基本配置和管理命令是至关重要的。掌握这些基础知识后,您就可以开始利用 Nginx 强大的功能来部署和管理您的 Web 应用程序了。

滚动至顶部