Nginx 反向代理、负载均衡、虚拟主机实践教程

Nginx配置虚拟主机 一、Nginx的应用概述 Nginx作为一款高性能的http服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。 1、http服务器 Nginx是一个http服务可以独立提供http服务 2、虚拟主机 可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。 3、反向代理,负载均衡 当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群... 阅读详情

原文出处:GitHub:https://github.com/andyczy/czy-study-middleware/tree/master/nginx

1、Nginx简介      

      Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

       Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2、Nginx点优

      Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。

       Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。


3、服务器的应用场景

      Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持Rails 和 PHP 程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

      作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

      作为虚拟主机:可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

 

4、Linux下安装Nginx(有Nginx安装手册、下载照着安装就好了)

     下面来Nginx实际应用、有空更新反向代理、负载均衡:模拟虚拟主机

4.1、nginx.conf文件配置

     (添加了一个域名为http://www.chenzhengyou.com/的服务)

 

4.2、添加HTML目录

 

4.3、介绍一个Hosts快速切换小工具

 

4.4、访问http://www.chenzhengyou.com/

 

 

5、windows下安装Nginx

官网下载(https://www.nginx.com/)
解压到自己的目录下

    

打开cmd(其实直接点击nginx.exe也是一样的)


 

访问地址(默认是80端口)

这是证明安装好了!

 

6、改变端口访问

 

结果图

 

7、nginx配置详细

#运行用户
user nobody;
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#全局错误日志及PID文件
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

#工作模式及连接数上限
events {
    #epoll是多路复用IO(I/O Multiplexing)中的一种方式,
    #仅用于linux2.6以上内核,可以大大提高nginx的性能
    use   epoll;

    #单个后台worker process进程的最大并发链接数    
    worker_connections  1024;

    # 并发总数是 worker_processes 和 worker_connections 的乘积
    # 即 max_clients = worker_processes * worker_connections
    # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4  为什么
    # 为什么上面反向代理要除以4,应该说是一个经验值
    # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000
    # worker_connections 值的设置跟物理内存大小有关
    # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数
    # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右
    # 我们来看看360M内存的VPS可以打开的文件句柄数是多少:
    # $ cat /proc/sys/fs/file-max
    # 输出 34336
    # 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内
    # 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置
    # 使得并发总数小于操作系统可以打开的最大文件数目
    # 其实质也就是根据主机的物理CPU和内存进行配置
    # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
    # ulimit -SHn 65535

}


http {
    #设定mime类型,类型由mime.type文件定义
    include    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  logs/access.log  main;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile     on;
    #tcp_nopush     on;

    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay     on;

    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6].";

    #设定请求缓冲
    client_header_buffer_size    128k;
    large_client_header_buffers  4 128k;


    #设定虚拟主机配置
    server {
        #侦听80端口
        listen    80;
        #定义使用 www.nginx.cn访问
        server_name  www.nginx.cn;

        #定义服务器的默认网站根目录位置
        root html;

        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;

        #默认请求
        location / {
            
            #定义首页索引文件的名称
            index index.php index.html index.htm;   

        }

        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }

        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            
            #过期30天,静态文件不怎么更新,过期可以设大一点,
            #如果频繁更新,则可以设置得小一点。
            expires 30d;
        }

        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        #禁止访问 .htxxx 文件
            location ~ /.ht {
            deny all;
        }

    }
}

 

推荐:nginx官网

           nginx 学习资料

           Nginx配置与应用详解

           nginx平台初探

           一本很好的nginx书籍

            Nginx安装手册

 

 

 

 

 

 

Nginx 全面指南:从安装到配置,详解虚拟主机、反向代理与负载均衡 Nginx 是一款高性能、轻量级的 HTTP 和反向代理服务器,以其出色的稳定性和负载均衡能力在Web服务领域广受欢迎。本指南将带领您快速入门Nginx,了解其基础配置、核心功能以及常见应用场景,并通过详尽的配置示例与注释,帮助您掌握这款服务器的基本操作。 阅读详情

相关推荐

Nginx安装与使用完整教程指南

Nginx(发音为“engine-x”)是一款高性能的轻量级Web服务器、反向代理服务器和负载均衡服务器,广泛应用于现代互联网架构中。它最初由俄罗斯程序员Igor Sysoev于2004年发布,旨在解决C10K问题(即同时处理上万个客户端连接的性能瓶颈),因其事件驱动的异步非阻塞处理模型而迅速获得关注。与传统的Apache服务器相比,Nginx在高并发场景下表现更为优异。Apache采用的是每个连接一个线程或进程的模型,随着并发连接数增加,系统资源消耗显著上升;

weixin_33245447的博客 809

nginx主要作用三个(虚拟主机+反向代理+upsteam调度分发)

一、传统模式正在上传…重新上传取消nginx• 1 部署⼀台备份服务器,宕机直接切换• 2 部署多台服务器,根据DNS的轮询解析机制去实现⽤户分发问题:1⽅案:服务器利⽤率低,成本⾼,切换不及时,服务器压⼒依然⼤2⽅案: 优势是⽤户处理速度得到了提升,但是当其中⼀台故障,就会有⼀部分⽤户访问不了⽹站并⾏处理解决⽅案• 1上述的DNS轮询解析⽅案• 2 多机阵列---集群模式正在上传…重新上传取消image.png那么啥是集群了???

swebin的专栏 2561

【全网最全最详细】智能体提示词prompt教程

定义:提示词是用户输入给AI模型(如ChatGPT、MidJourney等)的指令或问题,用于引导模型生成特定类型的输出。它是用户与AI交互的核心媒介。作用:提示词的质量直接影响AI输出的准确性和相关性。好的提示词能明确任务边界、减少歧义,并激发模型的创造力。提示词就是“给AI下指令的说明书”——越清楚、越具体,AI干得越好!帮你更快、更准地拿到想要的结果,不用和AI“猜谜语”。

qq_38196449的博客 8232

Nginx 虚拟主机与反向代理

一、虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。 利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

CHERISHGF的博客 1440

基于STM32L4XX、HAL库的 TMC2660C-PA 驱动程序设计

/ 默认灵敏度和电流。// 20/31最大电流。

zhusl6688的博客 386

Windows Docker Desktop部署MaxKB详细教程

MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。

猿小白的博客 1376

用虚拟机实现nginx七层的负载均衡

用虚拟机实现七层负载均衡

qq1271566323的博客 698

大数据领域数据产品的团队激励与绩效管理

在大数据领域,数据产品的成功离不开高效协作的团队。团队激励与绩效管理的目的在于激发团队成员的工作热情和创造力,提高工作效率和质量,确保数据产品能够按时、高质量地交付。本文章的范围涵盖了大数据领域数据产品团队激励与绩效管理的各个方面,包括激励机制的设计、绩效评估的方法、团队沟通与协作等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确相关概念的定义和相互关系;接着讲解核心算法原理和具体操作步骤,为团队激励与绩效管理提供理论支持和实践指导;然后分析数学模型和公式,帮助读者深入理解绩效评估的原理;

Java大师兄的博客 1018

Nginx系列04(虚拟主机配置、反向代理)

Nginx 的配置指令丰富多样,涵盖了从基础的服务器设置到复杂的反向代理、负载均衡等功能等,具体使用时可以根据实际需求进行进一步的学习和配置,nginx 系列正式连载,可关注我学习更多。

TEUTEU的博客 741

VisionPro 机器视觉案例 之 彩色保险丝个数统计

CogColorSegmenterTool CogColorMatchTool

机器视觉李小白的博客 2353

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

实现负载均衡

负载均衡

weixin_64826078的博客 317

A100 NVLink集群极致优化指南

《A100 NVLink集群通信优化指南》摘要:针对A100 80G SXM机型NVLink 3.0集群,提供硬件配置检查方法(nvidia-smi topo -m)和强制启用指令。重点介绍NCCL参数调优(算法选择、低延迟协议配置)、GPUDirect RDMA启用步骤,以及单机/多机场景下的通信模式选择。包含PyTorch all_reduce基准测试方法,并给出带宽异常排查方案(dmesg检查、NCCL缓存重置)。通过CUDA Graph通信重叠和混合精度优化,可实现90%+带宽利用率。附猿界算力监控

2401_89353317的博客 592

Nginx 反向代理、负载均衡、虚拟主机

文章目录一、代理原理二、正/反向代理的区别1、正向代理2、反向代理三、配置Nginx-Proxy1、代理模块2、代理配置3、 proxy 代理实例 一、代理原理 反向代理产生的背景: 在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。 反向代理服务的实现: 需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,

hanjinjuan的博客 7922

39-OpenLayers多图层切换显示隐藏,支持多个Layer同时显示和隐藏,OpenLayers懒加载瓦片

39-OpenLayers多图层切换显示隐藏,支持多个Layer同时显示和隐藏,OpenLayers懒加载瓦片

fxshy的博客 462

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Nginx反向代理及负载均衡

nginx反向代理及负载均衡  nginx反向代理实战  什么是代理服务器  为什么要使用代理服务器  反向代理 VS 正向代理  Nginx正向代理实战  Nginx反向代理实战  nginx负载均衡实战  nginx反向代理案例  反向代理多虚拟主机节点服务器企业案例  经过反向代理后的节点服务器记录用户IP企业案例  根据URL中的目录地址实现代理转发案例  根据客户端的设备(user_agent)转发  根据扩展名转发的应用场景

Starry__Sky222的博客 2302

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

nginx配置虚拟主机,实现反向代理和负载均衡

nginx配置虚拟主机,实现反向代理和负载均衡一、前言二、nginx配置虚拟主机2.1 通过端口区分不同虚拟机2.1.1 找到nginx安装的配置文件2.1.2 修改配置文件2.1.3 复制html文件2.1.4 重新加载配置文件2.1.5 效果展示2.2 通过域名区分虚拟主机2.2.1 修改本机配置文件hosts2.2.2 修改nginx的配置文件,添加新的服务2.2.3 复制html文件,并修...

tianzhen620的博客 1904

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Nginx 反向代理与负载均衡配置实践

Nginx 反向代理与负载均衡配置实践

2337

Nginx实现虚拟主机、反向代理、负载均衡、高可用、web缓存

Nginx实现虚拟主机、反向代理、负载均衡、高可用web缓存 更多精彩:https://blog.youkuaiyun.com/zixiao217 目标 ????虚拟主机配置 ????反向代理配置 ????负载均衡配置 ????负载均衡高可用 ????nginx实现web缓存 一 虚拟主机 概念: ​ 虚拟主机是一种特殊的模拟硬件的软件技术,它可以将网络上的一台物理计算机映射成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这...

青山师 974

配置虚拟主机—基于域名的虚拟主机配置、Nginx反向代理、Nginx实现负载均衡笔记

1、配置虚拟主机—基于域名的虚拟主机配置 1.1 需求 两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。 两个域名是aaa.test.com和bbb.test.com nginx服务器使用虚拟机192.168.101.3 1.2 准备环境 创建192.168.101.3虚拟机,保证本地电脑和虚拟网络通畅。 在192.168.101.3上安装ng...

Ark方舟 967

Nginx的反向代理和负载均衡

Nginx的反向代理和负载均衡

m0_63217468的博客 3241

Nginx - 配置/反向代理/负载均衡

Nginx 安装与启动 / Nginx 配置反向代理 / Nginx 配置负载均衡

chrismurphy的博客 2381

Nginx 反向代理 负载均衡 虚拟主机配置

Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常用配置的说明。即学即用,你还在等什么?一睹为快先了解Nginx的三大功能 Nginx 可以作为一台http服务器。可以做网站静态服务器,比如图片服务器,高效,减轻服务器压力。同时它也支持https服务。 Nginx 可以配置多台虚拟主机。可以实现在一台服务器虚拟出多个网站效果,省钱。 Nginx 最重要的是反向

weixin_43675226的博客 495

Nginx的安装和部署以及Nginx的反向代理与负载均衡

Nginx的安装和部署以及Nginx的反向代理与负载均衡

prcool的博客 1154

Linux服务:Nginx反向代理与负载均衡

本文通过实验详细讲解了nginx反向代理和nginx反向代理负载均衡的实现。并讲解了nginx反向代理负载均衡的6种调度算法包括:轮询算法,加权轮询,最小连接数,ip hash,url hash,响应时间fair。

云计算之路 2245

Nginx的反向代理及负载均衡

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。

weixin_74344274的博客 1048
上一篇: Nginx 教程、在Linux和windows下安装
下一篇: spring 框架精读—坚持更新中
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值