nginx的基本配置

news2024/10/6 12:35:21

#user  nobody;

#工作进程数量
worker_processes  4;


events {
    #子进程最大连接数
    worker_connections  1024;
}


http {
    #囊括的文件类型
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #长连接多长时间没沟通后断开
    keepalive_timeout  65;
    #服务器选项
    server {
        listen       5173;
        server_name  localhost;
        #路由匹配 
        location  /mobile {
             #路径别名
             alias  html/mobile;
             #查找根路径下的index.html文件 如果没有就查找index.htm文件
             index  index.html index.htm; 
             # $uri是内置的一个变量,代表当前请求的URI,不包括参数部分。
             #上方都没有匹配到则再次匹配 /mobile 没有则匹配/mobile/ 查看是否存在/mobile/文件夹
             # 是的话查找文件夹下的index.html
             #否则直接返回html/mobile/index.html
             try_files $uri $uri/ html/mobile/index.html;
        }  
        location / {
            root  html/pc;
            index index.html index.htm;
             try_files $uri $uri/ html/pc/index.html;
        }

        # location /api {
        #     # 代理
        #     proxy_pass http://backend_server_ip:backend_port;
        #     # 代理主机名设置
        #     proxy_set_header Host $host;
        #     # 代理请求头设置
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        # }

        #如果所有路由都没有匹配上转入404
        error_page  404      /404.html;
        location = /404.html {
           root   html/404;
           index  index.html index.htm; 
        }    

    }


}

nginx目录

根据不同设备响应不同文件夹中的内容(文件结构同上)


#user  nobody;

#工作进程数量
worker_processes  4;


events {
    #最大子进程数
    worker_connections  1024;
}



http {

    #囊括的文件类型
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #长连接多长时间没沟通后断开
    keepalive_timeout  65;


    #服务器选项
    server {
        listen       80;
        server_name  localhost;
        #路由匹配 
        location / {
            root html/pc;
            if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)'){
                root html/mobile;
            }
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        try_files $uri $uri/ =404;

    }
}

负载均衡

nginx.cong配置


#user  nobody;

#工作进程数量
worker_processes  4;


events {
    #最大子进程数
    worker_connections  1024;
}



http {
    #负载均衡
    upstream project {
        #配置  拥有的服务器主机/域名 + 端口号
        server localhost:3001;
        server localhost:3002;
    }

    #囊括的文件类型
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #长连接多长时间没沟通后断开
    keepalive_timeout  65;


    #服务器选项
    server {
        listen       5173;
        server_name  localhost;
        #路由匹配 
        location / {
            #代理到上面声明的  project项目中 格式为 http://  +  项目名称
            proxy_pass http://project;
            #http版本
            proxy_http_version 1.1;
            #设置http请求头
            proxy_set_header Upgrade $http_upgrade;
            #协议升级 如http升级为websocket
            proxy_set_header Connection 'upgrade';
            #变量 是否显示端口
            #设置主机名   
            # $host 不显示端口 浏览器请求的ip,不显示端口
            # $http_host 端口存在则显示 浏览器请求的ip和端口号
            # $proxy_host 默认80端口不显示,其它显示 被代理服务的ip和端口号

            proxy_set_header Host $host;
            #用于定义条件跳过缓存
            proxy_cache_bypass $http_upgrade;
            #用于避免缓存特定响应
            # proxy_no_cache
        }   

    }
}

配置 nginx 代理服务后
不设置 proxy_set_header Host 时,浏览器直接访问 nginx,获取到的 Host 是 proxy_pass 后面的值,即 $proxy_host 的值。
设置 proxy_set_header Host $host 时,浏览器直接访问 nginx,获取到的 Host 是 $host 的值,没有端口信息。
设置 proxy_set_header Host h o s t : host:host:proxy_port 时,浏览器直接访问 nginx,获取到的 Host 是 h o s t : host:host:proxy_port 的值。
设置 proxy_set_header Host $http_host 时,浏览器直接访问 nginx,获取到的 Host 包含浏览器请求的 IP 和端口。
设置 proxy_set_header Host $host 时,浏览器直接访问 nginx,获取到的 Host 是 $host 的值,没有端口信息。此时代码中如果有重定向路由,那么重定向时就会丢失端口信息,导致 404。

开启的服务内容

//服务一
import http from 'http'
import fs from 'fs'

const server = http.createServer((req,res)=>{
    if(req.url == '/'){
        fs.readFile('./src/index.html',(err,data)=>{
            res.end(data)
        })
    }
})


server.listen(3001,()=>{
    console.log(`项目启动在http://localhost:3002端口上`)
})
//服务二

import http from 'http'
import fs from 'fs'


const server = http.createServer((req,res)=>{
    if(req.url == '/'){
        fs.readFile('./src/index.html',(err,data)=>{
            res.end(data)
        })
    }
})

server.listen(3002,()=>{
    console.log(`项目启动在http://localhost:3001端口上`)
})

文件列表结构

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

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

相关文章

光伏储能为什么变得那么受欢迎?

在当今这个追求可持续发展和清洁能源的时代,光伏储能技术逐渐崭露头角,并成为了能源领域的热门话题。其受欢迎程度不断攀升,背后有着多方面的原因。光伏储能技术的优点众多,涵盖了多个方面,以下是关于其安全、寿命等关…

建筑信息模型(BIM)的应用与案例研究:塑造建筑与施工的新纪元

在数字化浪潮的推动下,建筑信息模型(Building Information Modeling, BIM)已从一项新兴技术发展为建筑与施工领域不可或缺的核心工具。本文将深入探讨BIM技术的应用原理,分享实际案例,揭示其如何引领建筑行业走向更加高…

C语言学习记录20240626

飞船无论朝哪边行驶,都能通过结构体记录获取它的初始坐标、转向角度和在该方向行进的距离,需要根据这些信息计算飞船移动后的坐标。 向量(vector)指具有大小(magnitude)和方向(direction)的量,可以理解为有方向的线段。 标量或纯量(scalar)指…

MySQL 7种Join的定义图解示范结果(所有join类型)

文章目录 MySQL 7种Join的定义&图解&示范&结果(所有join类型)基本知识笛卡尔积 建表&填充数据1-Join不带条件account筛选 1-Inner Join 内连接不带条件account相同where筛选玩点特殊的 2-Left Join 左连接不带条件account筛选 3-Right J…

django 和 pyecharts实现可视化大屏(完整代码)

1.配置settings文件 (1)注意:需要先创建app(djnago-admin startapp app名称) (2)配置模板文件 DIRS: [os.path.join(BASE_DIR, templates)], (3)配置静态文件(这里我由于存放清洗好的需要进行可…

基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

基于51单片机密码锁—六位密码LCD1602显示

基于51单片机密码锁设计 (仿真+程序+设计报告) 功能介绍 具体功能: 1.密码为六位数字,有键按下,LCD1602就会显示出字符 “*”; 2.当用户键入正确密码后,再按确认键&a…

HistoQC|病理切片的质量控制工具

小罗碎碎念 这期推文介绍的内容,我相信研究病理组学的人,一定都非常熟悉——HistoQC——病理切片的质量控制。 之前写过Hover Net系列的推文,反响还可以,但是Hover Net是用于细胞核检测和分类的,直接从这里开始还不够系…

应用程序任务驱动:详细解析LLM的评估指标

在自然语言处理(NLP)的动态环境中,大型语言模型(LM)性能的评估是衡量其在各种下游应用程序中的有效性的关键因素。不同的应用程序需要与其目标一致的不同性能指标。本文将详细介绍各种LLM评估指标,探索它们如何应用于实际场景。 从传统的摘要任务到更细…

华三中小企业组网

一、组网需求 在中小园区中,S5130系列或S5130S系列以太网交换机通常部署在网络的接入层,S5560X系列或 S6520X系列以太网交换机通常部署在网络的核心,出口路由器一般选用MSR系列路由器。 核心交换机配置VRRP保证网络可靠性。园区网中不同的…

python flask 入门-helloworld

学习视频链接: 01-【前奏】课程介绍_哔哩哔哩_bilibili 1.安装flask pip install flask 踩坑记:本机不要连代理,否则无法install 提示报错valueError: check_hostname requires server_hostname 2.程序编写 在根目录下创建 app.py fr…

深入探讨C++的高级反射机制(2):写个能用的反射库

在现代软件开发中,反射是一种强大的特性,它可以支持程序在运行时查询和调用对象的属性和方法。 但是在C中,没有内置的反射机制。我们可以通过一些巧妙的技术模拟反射的部分功能。 上一篇文章写了个简单的反射功能,这回完善一下&a…

Linux-笔记 OverlayFS文件系统入门

目录 前言 主要概念 工作原理 特点特性 1、上下合并 2、同名文件覆盖 3、同名目录合并 4、写时拷贝 实操入门 内核配置 挂载文件系统 验证 1、同名文件覆盖 2、同名目录合并 3、写时拷贝 1)验证新增文件或目录 2)验证修改文件 3&…

[leetcode]assign-cookies. 分发饼干

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int m g.size(), n s.size();int count 0;for (int i 0, j 0; i…

【嵌入式Linux】i.MX6ULL GPIO 中断服务函数注册与编写

文章目录 1 外部中断初始化与中断服务函数1.2 外部中断初始化函数 exti_init1.2.1 GPIO引脚配置1.2.2 中断使能与注册1.2.3 GIC_EnableIRQ()函数的分析 1.3 中断服务函数 gpio1_io20_irqhandler1.3.1 消抖处理1.3.2 中断事件处理1.3.3 清除中断标志 2 BUG处理2.1 问题描述2.2 解…

【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers

在当今人工智能与大数据飞速发展的时代&#xff0c;自然语言处理&#xff08;NLP&#xff09;已成为推动科技进步的重要力量。而在NLP领域&#xff0c;Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度&#xff0c;为您深…

泰迪智能科技大数据挖掘企业服务平台典型合作案例介绍

泰迪大数据挖掘企业服务平台 是一款通用的、企业级、智能化的数据分析模型构建与数据应用场景设计工具&#xff0c;能够一体化地完成数据集成、模型构建、模型发布&#xff0c;为数据分析、探索、服务流程提供支撑&#xff0c;提供完整的数据探索、多数据源接入、特征处理、模型…

编程设计思想

健康检查脚本 nmap:扫描端口 while true do healthycurl B:httpPORT/healthy -i | grep HTTP/1.1 | tail -n 1 | awk {print $2} done 批量操作类型脚本&#xff08;记录每一步日志&#xff09; 将100个nginx&#xff1a;vn推送到harbor仓库192.168.0.100 根据镜像对比sha值…

高效修复机床导轨磨损,保障加工精度!

机床导轨是支承和引导运动构件沿着一定轨迹运动的传动装置&#xff0c;在机器设备中是个十分重要的部件&#xff0c;在机床中是常见的部件。机床的加工精度与导轨精度有直接的联系&#xff0c;且导轨一旦损坏&#xff0c;维修较复杂且困难。我们简单总结了以下几点对于机床导轨…

rocketMQ消息中间件,onMessage报错,MessageExt of onessage method is not supported

本地启动不会报错&#xff0c;生产者和消费者都运行的好好的&#xff0c;但是打包之后就不断的报错误&#xff0c; 起初以为是maven出现了问题&#xff0c;但是刷新和重写都不管用&#xff0c;并且打的jar包解压后发现类里 有这个类和方法。最后认为是打包出现问题 解决方式&am…