IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx配置文件详解 -> 正文阅读

[系统运维]Nginx配置文件详解

Nginx配置文件详解

Nginx学习

反向代理

  1. 正向代理:正向代理是客户端通过代理服务器去访问一些服务器资源的方式
  2. 反向代理:
    1. 客户端访问反向代理服务器,反向代理服务器去代理目标服务器或者服务资源,返回给客户端;
    2. 对于客户端来说,只访问了反向代理服务器,对代理是无感的
    3. 对于服务器或者服务资源来说,隐藏了服务器或者服务资源的IP和端口

负载均衡

  1. 客户端通过nginx去访问多个服务端服务器时,可以对每个服务器的请求分发进行加权,将性能好的服务端服务器多分发一下请求;将性能比较弱的服务器少分配一些请求;降低服务器的压力。

动静分离

  1. 客户端通过nginx去访问服务端资源时,将静态资源(例如图片、视频等)和动态资源进行分开部署;优点是静态资源服务器使用的服务器资源相对较少、将服务器性能较好的服务器给动态资源服务器进行部署

基础命令

/usr/local/nginx/sbin

nginx -v # 查看nginx版本

nginx -s stop 

./nginx # 启动

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

配置文件详解

  1. 默认配置文件位置: /usr/local/nginx/conf/nginx.conf

  2. 文件组成:

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

# 指定可以运行nginx服务的用户和用户组,只能在全局块配置
# user [user] [group]
# 将user指令注释掉,或者配置成nobody的话所有用户都可以运行
# user nobody nobody;
# user指令在Windows上不生效,如果你制定具体用户和用户组会报小面警告
# nginx: [warn] "user" is not supported, ignored in D:\software\nginx-1.18.0/conf/nginx.conf:2

# 指定工作线程数,可以制定具体的进程数,也可使用自动模式,这个指令只能在全局块配置
# worker_processes number | auto;
# 列子:指定4个工作线程,这种情况下会生成一个master进程和4个worker进程
# worker_processes 4;

# 指定pid文件存放的路径,这个指令只能在全局块配置
# pid logs/nginx.pid;

# 指定错误日志的路径和日志级别,此指令可以在全局块、http块、server块以及location块中配置。(在不同的块配置有啥区别??)
# 其中debug级别的日志需要编译时使用--with-debug开启debug开关
# error_log [path] [debug | info | notice | warn | error | crit | alert | emerg] 
# error_log  logs/error.log  notice;
# error_log  logs/error.log  info;




events {
#开启的时候,将会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢;设置网路连接序列化,防止惊群现象发生,默认为on
    accept_mutex on;  
    #设置一个进程是否同时接受多个网络连接,默认为off;如果nginx使用kqueue连接方法,那么这条指令会被忽略,因为这个方法会报告在等待被接受的新连接的数量。
    multi_accept on;  
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}




http {

	##################http全局块#############################
	#文件扩展名与文件类型映射表;常用的浏览器中,可以显示的内容有HTML、XML、GIF及Flash等种类繁多的文本、媒体等资源,浏览器为区分这些资源,需要使用MIME Type。换言之,MIME Type是网络资源的媒体类型。Nginx服务器作为Web服务器,必须能够识别前端请求的资源类型。
	# include指令,用于包含其他的配置文件,可以放在配置文件的任何地方,但是要注意你包含进来的配置文件一定符合配置规范,比如说你include进来的配置是worker_processes指令的配置,而你将这个指令包含到了http块中,着肯定是不行的,上面已经介绍过worker_processes指令只能在全局块中。
	# 下面的指令将mime.types包含进来,mime.types和ngin.cfg同级目录,不同级的话需要指定具体路径
    include       mime.types;   
    
    
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    
    
    
    #access_log off; #取消服务日志    
    
    
    # log_format指令,用于定义日志格式,此指令只能在http块中进行配置
    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块##################
    server {
    
        keepalive_requests 120; #单连接请求上限次数。
        
        listen       4545;   #监听端口
        #listen 127.0.0.1:8000;  #只监听来自127.0.0.1这个IP,请求8000端口的请求
		#listen 127.0.0.1; #只监听来自127.0.0.1这个IP,请求80端口的请求(不指定端口,默认80)
		#listen 8000; #监听来自所有IP,请求8000端口的请求
		#listen *:8000; #和上面效果一样
		#listen localhost:8000; #和第一种效果一致

        server_name  127.0.0.1;   #监听地址 ;用于配置虚拟主机的名称
        
        # 代理的本地文件夹
		location /qqq {

			# root的处理结果是:root路径+location路径
			# alias的处理结果是:使用alias路径替换location路径
			# alias是一个目录别名的定义,root则是最上层目录的定义。
			# 还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件
			root D:\SoftWareData\TTT;
			#开启目录浏览功能; 
			autoindex on;  
			#关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;			
			autoindex_exact_size off;  
			#开启以服务器本地时区显示文件修改日期! 			
			autoindex_localtime on;
        
        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。0
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip           
        } 
         #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status on;
            access_log on;
            auth_basic "NginxStatus";
            auth_basic_user_file confpasswd;
            #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
        }
                #本地动静分离反向代理配置
        #所有jsp的页面均交由tomcat或resin处理
        location ~ .(jsp|jspx|do)?$ {
            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_pass http://127.0.0.1:8080;
        }
    }
}
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:48:04  更:2022-09-04 01:48:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:44:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码