nginx服务介绍

Nginx是一个高性能的Web服务器和反向代理服务器,它最初是为了处理大量并发连接而设计的。Nginx还可以用作负载均衡器、邮件代理服务器和HTTP缓存。它以其轻量级、稳定性和高吞吐量而闻名,广泛用于大型网站和应用中

  • Nginx的核心功能:

    • 静态文件服务:Nginx能够高效地提供静态内容,比如HTML文件、图像和CSS/JS文件。
    • 反向代理:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。它还支持负载均衡。
    • 负载均衡:Nginx支持多种负载均衡算法,如轮询(Round-robin)、最小连接(Least Connections)和IP哈希(IP Hash)。
    • HTTP缓存:Nginx可以缓存后端服务器的响应,减少服务器的压力并加快响应速度。
    • SSL/TLS终结:Nginx能够处理HTTPS请求,通过SSL/TLS加密保护数据传输。
  • Nginx的架构特点:

    • 事件驱动架构:与传统的进程/线程模型不同,Nginx使用异步、事件驱动架构,能够处理成千上万的并发连接而占用的资源很少。
    • 模块化设计:Nginx支持多种模块,例如HTTP模块、Mail模块等。你可以通过配置启用或禁用不同的功能。
    • 高并发:Nginx可以轻松处理数十万并发连接,适合大规模、高流量的场景。

Nginx的基本配置:

Nginx的配置文件通常位于 /etc/nginx/nginx.conf,这是主配置文件。配置文件通过块和指令来定义行为。常见的配置块包括:

http{}:配置HTTP服务的全局设置,如日志格式、默认字符集等。

server{}:每个server块定义一个虚拟主机(virtual host),包括域名、监听端口、站点根目录等。

location{}:location块用于匹配和处理特定的URL请求路径,可以指定不同的处理方式,比如静态文件的存放位置、反向代理设置等。

配置目录说明

  • /etc/nginx/nginx.conf:主配置文件,Nginx全局设置。
  • /etc/nginx/sites-available/:存放站点(虚拟主机)的配置文件。
  • /etc/nginx/sites-enabled/:存放启用的站点配置文件的符号链接。
  • /etc/nginx/conf.d/:存放全局的自定义配置文件。
  • /etc/nginx/snippets/:存放可复用的配置片段。
  • /var/log/nginx/:存放Nginx的日志文件。
  • /etc/nginx/mime.types:定义MIME类型映射的文件。
  • /etc/nginx/modules-enabled/:存放启用的Nginx动态模块配置文件。

安装使用

nginx命令手册

启动Nginx服务:

sudo systemctl start nginx

停止Nginx服务:

sudo systemctl stop nginx

完全重启Nginx服务,这会关闭并重新启动所有Nginx进程:

sudo systemctl restart nginx

修改了Nginx的配置文件后,可以通过重新加载来应用新的配置,而无需中断服务:

sudo systemctl reload nginx

在重新加载或重启Nginx之前,可以通过以下命令检查配置文件是否有语法错误:

sudo nginx -t

查看Nginx服务的运行状态:

sudo systemctl status nginx

确保Nginx在系统启动时自动运行:

sudo systemctl enable nginx

禁用Nginx的开机自启动:

sudo systemctl disable nginx

如果日志文件被移动或清除,重新打开日志文件:

sudo nginx -s reopen

优雅停止Nginx,允许当前处理的请求完成后再停止服务:

sudo nginx -s quit

强制立即停止Nginx,不等待请求完成:

sudo nginx -s stop

查看当前安装的Nginx版本:

nginx -v

配置静态web服务器

Ubuntu2404环境下安装使用

apt install -y nginx

开机自启动

systemctl enable --now nginx

创建静态文件目录

mkdir -p /var/www/html

创建一个简单的HTML文件

vi /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
    <title>Welcome to Nginx</title>
</head>
<body>
    <h1>Hello, this is a static file served by Nginx!</h1>
</body>
</html>

编辑Nginx配置文件;Nginx监听80端口,根路径指向 /var/www/html 目录中的文件。当访问localhost时,Nginx会返回/var/www/html目录下的 index.html 文件

vi /etc/nginx/sites-available/default
server {
    listen 80;
    server_name localhost;

    location / {
        root /var/www/html;
        index index.html;
    }

    # 配置一个日志目录(可选)
    access_log /var/log/nginx/static_access.log;
    error_log /var/log/nginx/static_error.log;
}

配置参数详解

  • server 块
    server 块用于定义一个虚拟主机的配置。一个Nginx实例可以包含多个 server 块,每个块处理不同的域名或不同的请求。

  • listen 指令
    定义Nginx监听的IP地址和端口号。
    listen 80 default_server;: 监听IPv4的80端口,并将此服务器块设为默认服务器。当没有其他服务器块匹配请求时,默认服务器将处理请求。

  • root 指令
    指定网站的根目录,即Nginx提供静态文件的基础路径。所有相对路径的文件请求将基于这个目录进行查找

  • index 指令
    定义默认的首页文件。当用户访问网站根目录或目录时,Nginx会按顺序查找这些文件并返回第一个存在的文件

  • server_name 指令
    指定此服务器块响应的域名或主机名。
    _: 通配符,表示所有未被其他 server 块匹配的请求都会由此处理。常用于默认服务器。

  • location 块
    定义如何处理特定的URI请求。可以基于路径、正则表达式等进行匹配和处理
    location / { … }: 匹配所有以 / 开头的请求,即所有请求。
    try_files $uri $uri/ =404;: 尝试按顺序查找请求的文件:
    $uri: 请求的URI对应的文件。
    $uri/: 请求的URI对应的目录。
    =404: 如果前两者都不存在,返回404错误。

检查Nginx配置是否正确

root@huhy:~#  nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重新加载Nginx

sudo systemctl reload nginx

界面访问

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

huhy~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值