Nginx 从入门到实践:概述、命令与核心应用

Nginx入门:安装、命令与核心应用

一、Nginx 概述

1.1 什么是 Nginx

Nginx 是一款轻量级的 Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它以占用内存少、并发能力强而著称,在同类型网页服务器中表现优异。国内众多知名网站如百度、京东、新浪、网易、腾讯、淘宝等均在使用 Nginx。

Nginx 由俄罗斯开发者伊戈尔・赛索耶夫为 Rambler.ru 站点开发,第一个公开版本 0.1.0 于 2004 年 10 月 4 日发布。其官方网站为:nginx

1.2 Nginx 下载与安装

1.2.1 下载

Nginx 官网下载页面(nginx: download)提供了各版本的下载链接,建议选择稳定版本。本文以 1.16.1 版本为例进行讲解,该版本在课程资料中也有提供。

1.2.2 安装步骤
  1. 安装依赖包
    由于 Nginx 基于 C 语言开发,需先安装 C 语言编译环境及相关依赖库:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

  1. 下载 Nginx 安装包

yum install wget
wget https://nginx.org/download/nginx-1.16.1.tar.gz

  1. 解压压缩包

tar -zxvf nginx-1.16.1.tar.gz

  1. 配置编译环境

cd nginx-1.16.1
./configure --prefix=/usr/local/nginx  #prefix 指定 Nginx 的安装目录。

  1. 编译并安装

make & make install

1.3 Nginx 目录结构

安装完成后,切换到安装目录(/usr/local/nginx),其主要目录结构如下:重点!!!!

目录 / 文件路径作用说明补充备注
confNginx 配置文件的统一存放目录可包含主配置、虚拟主机、模块等细分配置
conf/nginx.confNginx 最核心的全局配置文件,定义服务启动、进程、虚拟主机等基础规则所有 Nginx 功能都围绕此文件串联
html静态资源(HTML、CSS、JS、图片等)的默认存放目录部署静态站点时,文件可直接丢这里
logs日志存储目录,包含访问日志(access.log)、错误日志(error.log)等排查问题、统计流量的核心依据
sbin/nginxNginx 主程序二进制文件,用于启动、停止、重启服务(如nginx -s reload服务启停、重载配置的直接操作入口

二、Nginx 常用命令

Nginx 的二进制可执行文件(nginx)位于 sbin 目录下,通过不同参数可实现多种功能,以下为常用命令(需在 /usr/local/nginx/sbin/ 目录下执行)。

2.1 基础命令

  1. 查看版本
cd /usr/local/nginx/sbin/       
./nginx -v

  1. 检查配置文件
    修改配置文件后,启动前需检查配置是否有误:
./nginx -t

  1. 启动 Nginx  启动之后,我们可以直接访问Nginx的80端口, http://192.168.xxx.xxx 自己的Linux ip   可通过ip addr进行查看
./nginx

启动后可通过 ps -ef | grep nginx 查看进程,默认会启动两个进程。

访问注意:需关闭防火墙或开放 80 端口

 
  • 关闭防火墙:systemctl stop firewalld
  • 开放 80 端口:firewall-cmd --zone=public --add-port=80/tcp --permanent ,随后执行 firewall-cmd --reload
  1. 停止 Nginx

./nginx -s stop

  1. 重新加载配置文件
    修改配置后需重新加载生效:别忘记了!

./nginx -s reload

2.2 环境变量配置

为避免每次执行命令都需切换到 sbin 目录,可配置环境变量:

  1. 编辑 /etc/profile 文件,在 PATH 中添加 Nginx 的 sbin 目录:

vim /etc/profile

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

  1. 使配置生效:

source /etc/profile

配置后可在任意目录执行 nginx 命令。

三、Nginx 核心应用

3.1 配置文件结构

Nginx 配置文件(conf/nginx.conf)分为三部分:

区域职责
全局块配置与 Nginx 运行相关的全局参数
events 块配置与网络连接相关的参数
http 块配置代理、缓存、日志记录、虚拟主机等核心配置

http 块中可包含多个 server 块,每个 server 块可配置多个 location 块。

3.2 部署静态资源

Nginx 作为静态 Web 服务器部署静态资源(html、css、js、图片等)非常高效,步骤如下:

  1. 将静态资源复制到 /usr/local/nginx/html 目录。
  2. 配置 server 块:
server {
    listen 80;                # 监听端口
    server_name localhost;    # 服务器名称
    location / {              # 匹配客户端请求 URL
        root html;            # 静态资源根目录
        index index.html;     # 默认首页
    }
}
  1. 如需修改默认首页,可调整 index 指令(如 index hello.html;),修改后执行 nginx -t 检查配置,再执行 nginx -s reload 重新加载。

3.3 反向代理

3.3.1 概念
  • 正向代理:客户端设置代理服务器,通过代理访问目标服务器,常用于局域网客户端访问互联网。
  • 反向代理:用户直接访问反向代理服务器,代理将请求转发到目标服务器,用户无需知道目标服务器地址。
3.3.2 配置示例

在 nginx.conf 中添加如下配置,实现访问 Nginx 的 82 端口时转发到 192.168.200.201:8080:

server {
    listen 82;
    server_name localhost;
    location / {
        proxy_pass http://192.168.200.201:8080;  # 反向代理配置
    }
}

配置后需开放 82 端口或关闭防火墙,再重新加载配置。

3.4 负载均衡

3.4.1 概念

当单台服务器无法满足需求时,可通过多台服务器组成应用集群,负载均衡器将请求分发到集群中的服务器,实现性能扩展和避免单点故障。Nginx 基于反向代理实现负载均衡。

3.4.2 配置示例
  1. 在 192.168.xxx.xxx 服务器启动两个服务(8080 和 8081 端口)。
  2. 在 nginx.conf 中配置:
# 定义服务器集群
upstream targetserver{    
    server 192.168.xxx.xxx:8080;
    server 192.168.xxx.xxx:8081;
}

server {
    listen 8080;
    server_name localhost;
    location / {
        proxy_pass http://targetserver;  # 转发到集群
    }
}
  1. 重新加载配置后,访问 Nginx 的 8080 端口,请求会按默认轮询策略分发到 8080 和 8081 服务。
3.4.3 负载均衡策略

Nginx 支持多种负载均衡策略:

策略名称说明特点
轮询默认策略,按顺序分发请求均匀分配请求
weight按权重分发,权重越高分配概率越大可根据服务器性能调整权重
ip_hash根据客户端 IP 哈希值分发同一 IP 请求转发到同一服务器,解决会话保持问题
least_conn优先分发到连接数少的服务器动态平衡服务器负载
url_hash根据请求 URL 哈希值分发同一 URL 请求转发到同一服务器,适用于缓存场景
fair优先分发到响应时间短的服务器基于服务器响应速度智能分配

权重配置示例

upstream targetserver{    
    server 192.168.200.201:8080 weight=10;  # 权重 10
    server 192.168.200.201:8081 weight=5;   # 权重 5,接收请求数约为 8080 的一半
}

总结

Nginx 以其轻量高效的特点,在 Web 服务器、反向代理和负载均衡等场景中广泛应用。本文介绍了 Nginx 的安装、常用命令及核心应用配置,掌握这些内容可满足基本的 Nginx 使用需求。实际生产环境中,还需根据具体场景优化配置,充分发挥 Nginx 的性能优势。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一只羊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值