前端nginx(windows操作系统)学习配置开发验证

news2024/11/27 2:22:30

在这里插入图片描述

Nginx概述

Nginx 作为负载均衡在 Linux 系统上具备很好的并发性能,并且占用极小的内存。但是在 Windows 系统上并不支撑较高并发,所以在Windows系统上选用Nginx作为负载均衡,需要考虑并发情况。

  • 若并发需求低于 300,部署集群仅以热备为目的,可选用 Nginx 作为负载均衡,若并发需求超过 300,则不建议使用 Nginx,须换用其他负载均衡。

nginx下载

因为学习使用以及电脑性能各方面考虑,就没有安装ubuntu服务器或者安装虚拟机,直接在windows操作性系统下载使用

  • 点击nginx官网下载地址
    在这里插入图片描述

nginx安装

将下载好的nginx解压放在一个自己便于管理的文件夹下,不要点击nginx.exe
请注意,如果您在 Windows 上以服务的形式安装了 Nginx,那么您可能需要使用服务管理命令来控制 Nginx,而不是直接运行 nginx.exe。此外,确保您有适当的权限来执行这些命令,尤其是在尝试管理作为服务运行的 Nginx 时。

在这里插入图片描述
附上nginx中文文档地址:nginx中文文档

启动步骤

  • cmd进入nginx文件夹终端。
  • Windows+R 输入 cmd 进行以下编译,按照本文档部署的 Nginx 应用,请使用下面的运维命令。

在这里插入图片描述

  • 进入 Nginx 目录,输入start nginx启动Nginx 。如下图所示:
  • 会有一次终端的闪烁(一闪而过)
    在这里插入图片描述
    一般初始化nginx配置中是监听的就是9000端口(不一定,可以往后看自己配置这个监听的端口)。如果在浏览器能昂文
    在这里插入图片描述

基础运维命令

在nginx目录下执行cmd,进入终端

开启:start nginx
更改完之后重启:nginx -s reload
快速停止nginx:nginx -s stop
优雅停止:nginx -s quit

注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

基础配置以及注释

# Nginx配置文件
# 定义了服务器如何运行和处理请求的配置

# 指定使用的工作进程数
worker_processes  1;

# 事件处理模块配置,用于设置连接处理方式
events {
    # 每个工作进程的最大连接数
    worker_connections  1024;
}

# HTTP服务配置,包括全局、服务器块和位置块配置
http {
    # 包含mime.types文件,用于定义各种文件类型的默认 MIME 类型
    include       mime.types;
    # 默认的 MIME 类型
    default_type  application/octet-stream;

    # 启用sendfile特性,用于提高文件发送性能
    sendfile        on;
    # 设置客户端连接的保持活动状态超时时间
    keepalive_timeout  65;

    # 启用gzip压缩,减少数据传输量
    gzip  on;

    # 服务器块配置,可以有多个,用于处理不同的请求
    server {
        # 监听的端口和服务器名称
        listen       9000;
        server_name  localhost;

        # 首页请求处理
        location / {
            # 尝试按顺序查找对应的文件,未找到则重定向到/index.html或/index.htm
            try_files $uri $uri/ /index.html /index.htm;
        }

        # API请求处理
        location  /api/ {
            # 将API请求代理到指定的IP地址和端口上
            proxy_pass  http://192.168.31.111:9000;
        }
    }
}

结构解释

Nginx 的配置文件结构是分层的,主要分为四个部分:主配置区块、事件区块、HTTP区块和服务器区块。下面是每个区块的简要说明和它们在配置文件中的作用:

  1. 主配置区块 (http 之外的部分)

    • 这是最外层的配置区块,包含了全局的配置指令,如配置文件的包含指令 include、用户定义的变量、进程数 worker_processes 等。
  2. 事件区块 (events {})

    • 这个区块配置了与客户端连接相关的设置,比如连接超时时间、工作模式(单线程或多线程)等。
  3. HTTP区块 (http {})

    • 这是核心区块,包含了处理 HTTP 请求相关的配置。它包括文件扩展名与 MIME 类型的映射、日志定义、连接超时等。
  4. 服务器区块 (server {})

    • 位于 HTTP 区块内部,用于定义如何处理针对特定域名或 IP 地址的请求。服务器区块可以包含多个,用于配置虚拟主机。

在服务器区块内部,还可以有:

  • 监听区块 (listen): 指定服务器监听的地址和端口。
  • 服务器名称区块 (server_name): 定义当前服务器块适用的域名。
  • 位置区块 (location {}): 定义请求的 URI 匹配规则,以及匹配后的处理方式,如静态资源服务、代理设置等。

一个典型的 Nginx 配置文件结构示例:

# 用户和组
user  nginx;
worker_processes  auto;

# 错误日志定义
error_log  /var/log/nginx/error.log warn;

# 进程pid文件
pid        /var/run/nginx.pid;

# 事件区块
events {
    worker_connections  1024;
}

# HTTP区块
http {
    # 文件扩展名与MIME类型的映射
    include       /etc/nginx/mime.types;
    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;

    # 其他HTTP设置
    sendfile       on;
    # TCP_NODELAY 套接字选项
    tcp_nopush     on;
    # 防止网络运营商缓存页面
    tcp_nodelay    on;

    # 包含其他配置文件
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    # 服务器区块
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  localhost;

        # 服务器名称
        server_name_in_redirect off;

        # 客户端请求头部中Host字段的值
        root   /usr/share/nginx/html;
        # 默认页面
        index  index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
            # 配置PHP处理
        }

        # 其他location区块...
    }

    # 其他服务器区块...
}

这个结构展示了 Nginx 配置文件的基本框架,实际配置可能会更复杂,包括更多的指令和区块。理解这个基本结构对于编写和维护 Nginx 配置文件至关重要。

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

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

相关文章

Spring的基本应用

概述:Spring是由Rod Johnson组织开发的一个分层的java SE/EE一站式的轻量级开源框架,以IOC(控制反转)和AOP(面向切面)为核心,的开发模式。 注:喜欢的朋友可以关注公众号“JAVA学习课堂”系统学习相关技术&a…

ElasticSearch知识点汇总

1、ES中的​​​​​​​倒排索引是什么。 倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典映射表即为倒排索引 2、ES是如何实现master选举的。 选举过程主要包括以下几个步骤: 心跳检测: 每个节点…

【消息队列】MQ介绍

MQ MQ(MessageQueue),中文是消息队列,就是存放消息的队列,也是下面提到的事件驱动架构中的Broker 同步调用的优点: 时效性强,可以立即得到结果 同步调用的问题: 耦合度高性能和吞吐…

基于 llama2 的提示词工程案例2

优化大型语言模型(LLMs) 优化大型语言模型(LLMs)中的提示词(prompts)是提高模型性能和输出相关性的重要手段。以下是一些优化提示词的方向: 明确性:确保提示词清晰明确,…

【Java 刷题记录】前缀和

前缀和 25. 一维前缀和 示例1: 输入: 3 2 1 2 4 1 2 2 3输出: 3 6import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(S…

【强化学习】公平性Actor-Critic算法

Bringing Fairness to Actor-Critic Reinforcement Learning for Network Utility Optimization 阅读笔记 Problem FormulationLearning AlgorithmLearning with Multiplicative-Adjusted RewardsSolving Fairness Utility Optimization Evaluations 在网络优化问题中&#xff…

PyGame 文字显示问题及解决方法

在 Pygame 中显示文字时可能会遇到一些问题,例如文字显示不清晰、字体不正确或者文字位置不准确等。以下是一些常见的问题及其解决方法,具体情况可以看看情况。 1、问题背景 一位用户在使用 PyGame 库进行游戏开发时,遇到了一个问题&#xf…

[AI OpenAI-doc] 迁移指南 Beta

我们已经改变了助手 API 在 beta 的 v1 版本和 v2 版本之间工具和文件的工作方式。今天,通过 API,两个 beta 版本仍然可以访问,但我们建议尽快迁移到我们 API 的最新版本。我们将在 2024 年底之前废弃 beta 的 v1 版本。 如果您今天不使用助手…

套管外径测量仪 多尺寸型号 规格全可定制

套管(bushing)是一种将带电导体引入电气设备或穿过墙壁的一种绝缘装置。前者称为电器套管,后者称为穿墙套管。套管通常用在建筑地下室,是用来保护管道或者方便管道安装的铁圈。套管的分类有刚性套管、柔性防水套管、钢管套管及铁皮…

SpringBoot中HandlerInterceptor拦截器的构建详细教程

作用范围:拦截器主要作用于Spring MVC的DispatcherServlet处理流程中,针对进入Controller层的请求进行拦截处理。它基于Java的反射机制,通过AOP(面向切面编程)的思想实现,因此它能够访问Spring容器中的Bean…

Python-VBA函数之旅-property函数

目录 一、property函数的常见应用场景 二、property函数使用注意事项 三、如何用好property函数? 1、property函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、prop…

【北京迅为】《iTOP-3588开发板源码编译手册》-第4章 Android12/Linux设备树简介

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

4.【Orangepi Zero2】Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90)

Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90) signalsetitimer示例 软件PWM驱动舵机(SG90) signal 详情请看Linux 3.进程间通信(shmget shmat shmdt shmctl 共享内存、si…

帆软报表实现填报报表

我们拿emp表举例 登记信息表 设计一个报表实现对emp表员工的登记 (emp表为ORACLE自带用户scott下的一个表) 首先,我们设计好填报界面,新建一个普通报表,将emp表中需要的输入一一回应填写进表中。 如下图所示&#xf…

代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路: 确定dp数组含义…

如何去官网下载windows10操作系统iso镜像

文章目录 一、先从微软中国官网https://www.microsoft.com/zh-cn/进去二、然后按图示一步步点进去三、点击下载工具这个工具会帮你生成windows操作系统iso文件四、下载好后一步步按图示要求成功操作 一、先从微软中国官网https://www.microsoft.com/zh-cn/进去 二、然后按图示一…

【牛客】排列计算

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 如果直接涂色来计算单点权重&#xff0c;2e5*2e5必然超时。 所以用差分进行优化。 3. 代码实现 #include<bits/stdc.h> using name…

【工作记录】openjdk-22基础镜像的构建

背景 近期使用到的框架底层都用的是springboot3.0&#xff0c;要求jdk版本在17甚至更高。 于是决定制作一个基于openjdk22的基础镜像&#xff0c;本文对这一过程进行记录。 作为记录的同时也希望能够帮助到需要的朋友。 期望效果 容器内可以正常使用java相关命令且版本是2…

vm虚拟机安装网络适配器驱动卡死/无响应/无限等待状态

大部分原因都是以前的vm没有卸载干净所导致的&#xff0c;只需要使用CCleaner清楚干净就好 使用控制面板里的卸载把VM卸载干净 使用CCleaner软件删除干净注册表&#xff0c;这个软件百度很容易找到&#xff0c;只有十兆左右 打开下载好的软件&#xff0c;不需要注册码&#xff…

保研面试408复习 2——操作系统、计网

文章目录 1、操作系统一、进程、线程的概念以及区别&#xff1f;二、进程间的通信方式&#xff1f; 2、计算机网络一、香农准则二、协议的三要素1. 语法2. 语义3. 时序 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 1、操作系统 一、进程、线程的概念以及…