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 相对简单,只需下载并解压即可。
-
下载 Nginx for Windows:
访问官方下载页面,找到 Windows 版本(通常以nginx-x.x.x.zip命名)并下载。 -
解压文件:
将下载的zip文件解压到您希望安装 Nginx 的目录,例如C:\nginx。解压后,您会看到一个nginx-x.x.x文件夹,其中包含以下主要文件和目录:conf: 存放 Nginx 的配置文件。html: 存放默认的网页文件(index.html)。logs: 存放 Nginx 的日志文件。nginx.exe: Nginx 的主程序。
-
启动 Nginx:
打开命令提示符(CMD)或 PowerShell,切换到 Nginx 的安装目录(例如cd C:\nginx)。然后执行以下命令启动 Nginx:
bash
start nginx
您也可以直接双击nginx.exe启动,但这样可能看不到启动信息或错误。 -
验证安装:
打开您的浏览器,访问http://localhost/。如果看到 “Welcome to nginx!” 页面,则表示 Nginx 已成功启动。 -
停止/重启 Nginx:
- 停止 Nginx:
bash
nginx -s stop # 快速停止
nginx -s quit # 平滑停止(等待当前请求处理完毕) - 重新加载配置(不停止服务):
在修改 Nginx 配置文件后,可以使用此命令让配置生效,而无需停止服务。
bash
nginx -s reload - 检查 Nginx 进程:
bash
tasklist /fi "imagename eq nginx.exe"
- 停止 Nginx:
2. Linux 系统安装 (以 Ubuntu/Debian 为例)
在 Linux 系统上,通常推荐使用包管理器进行安装,这样可以方便地管理依赖和更新。
方法一:使用 apt 包管理器 (推荐)
-
更新包列表:
在终端中执行以下命令,确保您的系统包列表是最新的:
bash
sudo apt update -
安装 Nginx:
bash
sudo apt install nginx
系统会提示您确认安装,输入Y并回车。 -
启动 Nginx 服务:
安装完成后,Nginx 服务通常会自动启动。您可以使用以下命令检查其状态:
bash
sudo systemctl status nginx
如果 Nginx 未运行,可以使用以下命令启动它:
bash
sudo systemctl start nginx -
设置开机自启:
bash
sudo systemctl enable nginx -
调整防火墙 (如果适用):
如果您的服务器启用了防火墙(如ufw),您需要允许 HTTP 和 HTTPS 流量通过。
bash
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
sudo ufw reload
您可以使用sudo ufw status查看防火墙规则。 -
验证安装:
在浏览器中输入您的 Linux 服务器的 IP 地址或域名。如果看到 “Welcome to nginx!” 页面,则表示安装成功。
方法二:从源码编译安装 (适用于需要特定版本或自定义配置的用户)
从源码编译安装 Nginx 提供了更大的灵活性,但也更为复杂。
-
安装编译依赖:
bash
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-devbuild-essential: 包含编译所需的工具链。libpcre3,libpcre3-dev: 用于支持正则表达式。zlib1g,zlib1g-dev: 用于支持 Gzip 压缩。libssl-dev: 用于支持 HTTPS。
-
下载 Nginx 源码:
访问 Nginx 官方下载页面,下载您希望安装的 Nginx 源码包(通常是.tar.gz格式)。
bash
wget http://nginx.org/download/nginx-x.x.x.tar.gz
将x.x.x替换为您下载的版本号。 -
解压源码包:
bash
tar -zxvf nginx-x.x.x.tar.gz
cd nginx-x.x.x -
配置编译选项:
在编译前,您可以使用./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: 启用状态监控模块。
您可以根据需要添加或移除其他模块。
-
编译和安装:
bash
make
sudo make install -
创建软链接 (可选):
为了方便,可以将 Nginx 命令添加到系统 PATH 环境变量中,或创建软链接:
bash
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx -
启动 Nginx:
bash
sudo /usr/local/nginx/sbin/nginx -
验证安装:
在浏览器中访问服务器 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 应用程序了。