nginx服务介绍

news2024/9/21 21:59:11

nginx

    • 安装使用
    • 配置静态web服务器

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

界面访问

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2141924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024ICPC网络赛1: C. Permutation Counting 4

题意&#xff1a; 给定 n n n个区间 [ L i , R i ] [L_i,R_i] [Li​,Ri​]设集合 A { { p i } ∣ p i 为排列&#xff0c; L i < p i < R i } A\{ \{ p_i\} | p_i为排列&#xff0c;Li<p_i<R_i\} A{{pi​}∣pi​为排列&#xff0c;Li<pi​<Ri​}&#xff…

图解Redis 01 | 初识Redis

什么是 Redis&#xff1f; Redis 是一种基于内存的数据库&#xff0c;所有的数据读写操作都在内存中完成&#xff0c;因此读写速度非常快。它被广泛应用于缓存、消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务需求&#xff0c;如 String、Hash、List、…

Vscode 中新手小白使用 Open With Live Server 的坑

背景 最近在家学习尝试前端项目打包的一些事项&#xff0c;既然是打包&#xff0c;那么肯定就会涉及到对打包后文件的访问&#xff0c;以直观的查看打包后的效果 那么肯定就会使用到 Vscode 中 Open With LIve Server 这个功能了&#xff0c;首先这个是一个叫 Live Server 的…

18、Python如何读写csv文件

先简单介绍一下 csv 格式的文件是什么意思。先看一下百度百科怎么说的。 逗号分隔值&#xff08;Comma-Separated Values&#xff0c;CSV&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&…

企业绿色信贷水平研究:全国与分省份数据分析(2005-2021年)

企业绿色信贷水平指的是企业在信贷活动中&#xff0c;根据环保和产业政策&#xff0c;对环保企业进行扶持&#xff0c;对污染企业进行资金遏制的能力。 2005-2021年 上市企业绿色信贷水平全国、分省份数据&#xff08;原始数据和计算方法&#xff09;https://download.csdn.ne…

鸿蒙读书笔记2:《鸿蒙操作系统设计原理与架构》

2. OS基础平台部件化 &#xff08;1&#xff09;内核层 内核层包括内核部件和HDF驱动框架部件。当前已提供LiteOS-M、 LiteOS-A、Linux和UniProton这4种内核部件&#xff0c;未来还可增加更多类 型的内核部件。LiteOS、Linux内核部件可以按需部署在不同设备之 上&#xff0c;内…

腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧

之前总结过字节跳动TOP50算法面试题&#xff1a; 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 链表 160.相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) …

29 线性表 · 队列

目录 一、概念与结构 &#xff08;一&#xff09;概念 1、队列 2、入队列 3、出队列 &#xff08;二&#xff09;底层结构 二、队列的实现 三、队列的算法题 &#xff08;一&#xff09;用队列实现栈 &#xff08;二&#xff09;用栈实现队列 &#xff08;三&#xf…

基于AG32 的USB转以太网方案

如何通过USB转以太网标准模块&#xff1f; AG32支持USB FSOTG和以太网MAC&#xff0c;并且提供了标准例程&#xff0c;包括网络Lwip和USB的开发例程&#xff0c;上层应用调tinyUSB的接口即可。 以下是AG32VF407VG的引脚定义&#xff0c;支持USB外设。 LQFP-100Pin nameAG32VFx…

简单了解Maven与安装

Maven 1.Maven 简介 Maven 是 Apache 软件基金会&#xff08;国外组织&#xff0c;专门维护开源项目&#xff09;的一个开源项目, 是一个优秀的项目构建工具, 它用来帮助开发者管理项目中的 jar, 以及 jar 之间的依赖关系(在A.jar文件中用到了B.jar)、 完成项目的编译&am…

圆环加载效果

效果预览 代码实现 from PyQt5.QtCore import QSize, pyqtProperty, QTimer, Qt, QThread, pyqtSignal from PyQt5.QtGui import QColor, QPainter from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QVBoxLayout, QLabel, QGridLayoutclass Cir…

Rust使用Actix-web和SeaORM库开发WebAPI通过Swagger UI查看接口文档

本文将介绍Rust语言使用Actix-web和SeaORM库&#xff0c;数据库使用PostgreSQL&#xff0c;开发增删改查项目&#xff0c;同时可以通过Swagger UI查看接口文档和查看标准Rust文档 开始项目 首先创建新项目&#xff0c;名称为rusty_crab_api cargo new rusty_crab_apiCargo.t…

Nuxt Kit 中的页面和路由管理

title: Nuxt Kit 中的页面和路由管理 date: 2024/9/17 updated: 2024/9/17 author: cmdragon excerpt: 摘要:本文介绍了Nuxt Kit中页面和路由管理的高级功能,包括extendPages自定义页面路由、extendRouteRules定义复杂路由逻辑及addRouteMiddleware注册路由中间件。通过这…

Html css样式总结

1.Html css样式总结 1.1. 定位position 布局是html中非常重要的一部分&#xff0c;而定位在页面布局中也是使用频率很高的方法&#xff0c;本章节为定位在布局中的使用技巧和注意事项。   position定位有4个属性&#xff0c;分别是static(默认&#xff09;&#xff0c;absol…

第四天旅游线路预览——从换乘中心到白哈巴村

第四天&#xff1a;从贾登峪到喀纳斯风景区入口&#xff0c;晚上住宿贾登峪&#xff1b; 换乘中心有4 路车&#xff0c;喀纳斯③号车&#xff0c;去白哈巴村&#xff0c;路程时长约40分钟&#xff1b; 将上面的的行程安排进行动态展示&#xff0c;具体步骤见”Google earth st…

用Spring Boot搭建的读书笔记分享平台

第1章 绪论 1.1课题背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统&#xff0c;从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”&#xff0c;用户可以选择所需的信息进入…

【Spring Security系列】如何用Spring Security集成手机验证码登录?五分钟搞定!

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 【Spring Security系列…

拖拽排序的实现示例demo

拖拽排序的实现示例demo 文章说明核心代码示例效果展示 文章说明 文章主要为了学习拖拽排序的实现思路&#xff0c;并且采用此示例效果来进一步理解Flip动画的使用 参考渡一前端袁老师的讲解视频 核心代码 页面源码&#xff0c;拖拽排序的实现代码并不复杂&#xff0c;但是可以…

我的标志:奇特的头像

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>与妖为邻</title><style>figure.log…

C++11(4)

万众瞩目的C11特辑来了&#xff0c;本章将继续讲解C11更新的内容&#xff0c;不过C11的内容也快接近尾声了。 目录 10。lambda表达式 11。lambda捕捉列表[] 捕捉列表说明 lambda捕捉列表实际应用 10。lambda表达式 #include<iostream> using namespace std; #inclu…