Nginx技术(2)Nginx配置文件简述


概述

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。本文主要简述Nginx的配置文件及示例配置,仅供学习分享使用,如有不足之处,还请指正。

Nginx配置文件结构

Nginx的配置文件nginx.conf位于其安装目录的conf目录下。
nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location:具体结构如下所示:

Nginx配置文件简述

Nginx配置文件各个模块说明

  1. 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  2. events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  3. http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  4. server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  5. location块:配置请求的路由,以及各种页面的处理情况。

Nginx实现多端口服务

众所周知,一个Tomcat只能绑定一个端口,但是一个Nginx服务却可以通过配置不同端口,来支持不同的访问,具体步骤如下所示:

复制Nginx自带的html文件夹,并命名为html2,作为一个单独的访问路径,如下所示:

 cp -r html html2 #复制文件夹及内容并改名

Nginx配置文件简述

修改html2/index.html文件的内容,然后保存,以便区分不同端口的页面显示,如下所示:

 vim index.html  #修改文件内容
 cat index.html   # 查看文件内容

Nginx配置文件简述

切换到/usr/lcocal/nginx/conf/目录下,修改nginx.conf配置文件,增加一个server节点,端口为8080,路径指向html2,如下所示:

 cp nginx.conf nginx.conf.bak # 修改之前先备份
 vim nginx.conf  # 修改配置文件
 cat nginx.conf # 查看修改后的内容

新增的server节点内容如下所示:

  #新增一个服务节点
     server {
        listen  8080;
        server_name  localhost;
        location / {
            root html2;
            index index.html index.htm;
        }  
     }

截图如下所示:

Nginx配置文件简述

保存配置文件,然后启动nginx服务。

切换到/usr/local/nginx/sbin目录,启动nginx并查看服务进程,如下所示:

  ./nginx  # 启动服务
 ps -ef|grep nginx  # 查看进程

Nginx配置文件简述

然后打开浏览器进行访问,80端口是默认内容,如下所示:

Nginx配置文件简述

8080端口为新增节点,显示内容和修改后的一致,则表示成功,如下所示:

Nginx配置文件简述

以上就是通过多个端口来配置不同服务。

 Nginx实现多域名服务

在网络世界中,域名方便用户记忆及传播,且拥有有特殊的含义,代表一个独一无二的服务。Nginx可以通过配置不同的域名来区分不同的服务,如下所示:

复制Nginx自带的html文件夹,并命名为html3,作为一个单独的访问路径,如下所示:

  cp -r html html3  # 复制文件夹及文件,并重命名

Nginx配置文件简述

修改html3/index.html文件的内容,然后保存,以便区分不同域名的页面显示,如下所示:

 vim index.html  # 修改文件
 cat index.html   # 查看文件

Nginx配置文件简述

修改nging.conf配置文件

切换到/usr/lcocal/nginx/conf/目录下,修改nginx.conf配置文件,增加一个server节点,端口为80,路径指向html3 ,域名为www.alan.hsiang.com,如下所示:

 vim nginx.conf  # 修改配置文件
 cat nginx.conf # 查看修改后的内容

新增节点,如下所示:

     server {
        listen 80;
        server_name wwww.alan.hsiang.com;
        location / {
            root html3;
            index index.html index.html;
        }
     }

截图如下:

Nginx配置文件简述

保存配置文件,然后重新加载nginx使配置文件生效。

切换到/usr/local/nginx/sbin目录,重新加载nginx,如下所示:

  ./nginx -s reload  # 重新加载配置文件

Nginx配置文件简述

修改本例hosts文件,路径为C:\Windows\System32\drivers\etc,如下所示:

Nginx配置文件简述

增加域名与IP对应关系并保存,如下所示:

Nginx配置文件简述

在浏览器中输入域名,即可访问,如下所示:

Nginx配置文件简述

以上就是 通过配置不同域名来访问不同路径的步骤。

关于nginx.conf的配置文件节点说明,详细如下所示:

 ########### 每个指令必须有分号结束。#################
 #user administrator administrators;  #配置用户或者组,默认为nobody nobody。
 #worker_processes 2;  #允许生成的进程数,默认为1
 #pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
 error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
 events {
     accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
     multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
     #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
     worker_connections  1024;    #最大连接数,默认为512
 }
 http {
     include       mime.types;   #文件扩展名与文件类型映射表
     default_type  application/octet-stream; #默认文件类型,默认为text/plain
     #access_log off; #取消服务日志    
     log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
     access_log log/access.log myFormat;  #combined为日志格式的默认值
     sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
     sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
     keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。
 
     upstream mysvr {   
       server 127.0.0.1:7878;
       server 192.168.10.121:3333 backup;  #热备
     }
     error_page 404 https://www.baidu.com; #错误页
     server {
         keepalive_requests 120; #单连接请求上限次数。
         listen       4545;   #监听端口
         server_name  127.0.0.1;   #监听地址       
         location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
            #root path;  #根目录
            #index vv.txt;  #设置默认页
            proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
            deny 127.0.0.1;  #拒绝的ip
            allow 172.18.5.54; #允许的ip           
         } 
     }
 }
View Code

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:Nginx技术(3)Nginx实现反向代理和负载均衡
下一篇:Nginx技术(1)Nginx简介及环境搭建
评论列表

发表评论

评论内容
昵称:
关联文章

Nginx技术2Nginx配置文件简述
Nginx技术(1)Nginx简介及环境搭建
Nginx技术(3)Nginx实现反向代理和负载均衡
鹊巢SEO - 系统配置文件详解 - setting.yaml
开发环境配置 - Auth - 软件授权注册系统V2.1
CS框架V2.2支持三种SQL连接配置存储位置
VSCode系统参数配置:settings.json 配置
CS系统框架 - 负载均衡技术详解(Load Balancing) (二)
CS系统框架 - 负载均衡技术详解(Load Balancing) (一)
Facebook图片存储架构技术全面解析
IIS承载的WCF服务,配置.svc文件页面的MIME类型及处理程序映射
VS发布Web站点应用 - 发布文件选项配置 - 高级预编译设置
VSCode配置C#运行环境教程,vscode配置c#
不使用配置文件构建和使用WCF服务(WCF Service)
CSFrameworkV2.3标准版代码生成器配置
《CS框架V2.2开发环境配置与部署》.doc
SQLServer连接配置工具(配置保存到ini文件或系统注册表)
SEO工具配置信息
客户端DevExpress13.2.8所有引用文件
MQ消息队列(3)RabbitMQ交换机类型简述

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序