• Nginx(二) 常用配置


    全局配置段

    # 允许运行nginx服务器的用户和用户组
    user www-data;
    
    # 并发连接数处理(进程数量),跟cpu核数保存一致;
    worker_processes auto;
    
    # 存放 nginx的进程号
    pid /run/nginx.pid;
    
    # 定义相关属性
    events {
    	# 一个进程允许处理的最大连接数768
    	worker_connections 768; 
    	# multi_accept on;
    	# 定义使用的内核模型,默认开启epoll
    	# use 	epoll 	
    
    }
    

    http配置段

    http {
        # 开启高效文件传输模式
    	sendfile on; 
    	
    	###### 防止网络阻塞 ######
    	tcp_nopush on;
    	tcp_nodelay on;
    	
    	# 长连接超时时间65秒
    	keepalive_timeout 65;
    	types_hash_max_size 2048;
    	# server_tokens off;
    
    	# server_names_hash_bucket_size 64;
    	# server_name_in_redirect off;
    
    	###### 允许处理文件类型 ######
    	# 文件扩展名与文件类型映射表
    	include /etc/nginx/mime.types;
    	# 默认文件类型
    	default_type application/octet-stream;
    
    
    	###### 日志配置 ######
    	# Logging Settings
    	##
        
        # 日志文件存放
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    
        # 开启gzip压缩输出
    	gzip on;
    
        # 开启目录列表访问,搭建下载服务时使用,默认关闭
        # autoindex on; 
        
    	# 配置文件从上往下读,类似django路由转发
    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    
    	# 如果不导入Nginx.conf配置,可以直接在这里添加server
    	# server {
        # 	listen 172.17.1.142:80;
    
    	# 	location /performance {
        #     alias /etc/nginx/my_gitbook/_book/;
    	# 	index index.html;
    	# 				}
    	# }
    }
    

    Server常见配置

    server {
        # 监听端口号
        listen ip:port;
        server_name 主机名;
        ...
    }
    
    listen的表示方式
    形式 描述
    ip:port 精确表示
    ip 自动监听80端口
    port 自动监听80端口
    default_server 自动使用默认地址localhost:80
    server_name

    作用:对不同的域名的请求分类
    格式:

    形式 例子
    完整样式 www.example.com
    前缀正则样式 *.example.com
    后缀正则样式 www.example.*

    location

    location 根据Server匹配到的请求路径和关键字去响应和处理, 支持正则匹配
    普通匹配:
    相同的路由规则下:

    类型 含义 匹配方式 优先级 样式
    =/路径 精确匹配 前缀 1 location = /image {}
    ^~ 优先匹配 前缀 2 location ^~ /page {}
    @ 内部重定向 前缀 location @name {}
    空 / 通用匹配 前缀 location / {}
    # ----------匹配规则优先级---------------
    # 同样对于根目录匹配
    # 通用匹配 最后匹配
        location / {
            return 400;
        }
        精确匹配  优先级最高
        location = / {
            return 401;
        }
        优先匹配 优先级第二
        location ~ / {
            return 402;
        }
    

    正则匹配:

    location 基础设置

    location / {
        	root   /var/www/html;					# 指定响应请求的文件所在路径
        	index  index.php index.html index.htm;	# 指定响应请求的默认文件名称
        	expires 7d;								# 指定响应请求的文件过期时间,一般用于静态文件
        	try_files $uri $uri/ =404;				# 如果root指定的路径下有查找的文件,就返回,否则报错
    }
    
    • root属性
      作用:定义Server相应请求的html文件所在路径
      表现形式: root /var/www/html;
    • index属性
      作用:定义响应请求后返回的文件名称或格式
      表现形式: index index.html index.htm index.nginx-debian.html;
    • return属性
      作用:定义响应请求后返回的http状态码
      表现形式: return 400;

    location 临时跳转

    location = /test/ {
        return 302 http://sswang.com/;			# 访问旧url的时候,临时跳转到新url,两个url均不失效	
    }
    

    location 访问控制

    location /nginx-status {
        stub_status on;  						# 开启nginx的状态页面,返回nginx状态信息,默认关闭
        allow 192.168.1.11;						# 指定ip客户端允许的访问(ip白名单)
        deny all;								# 除了允许都拒绝
    }
    

    location 目录列表

    # 目录下载控制
    location /upload {
        alias   /etc/nginx;		# 指定查看文件列表路径(绝对路径)
        autoindex on;             		# 开启目录自动索引
        autoindex_exact_size off; 	    # 默认on,显示文件确切大小(bytes)。off表示显示文件的大概大小(kB/MB/...)
        autoindex_localtime on;   	    # 默认off,显示的文件时间为GMT时间。on表示显示文件的服务器时间
    }
    注意:
     	该alias指定的目录下,不允许出现index属性指定的文件。
    
    root 和 alias 区别

    一般情况下,在location /中配置root,在location /other中配置alias

    root 	表示 location 匹配内容的相对路径
    alias 	表示 一个绝对路径,而且必须以"/"结尾
    
    • root
      访问http://localhost/img/,nginx找/var/www/image/img/目录下的文件
    location /img/ {                       		
    	root /var/www/image/;                
    }      
    
    • alias
      访问http://localhost/img/,nginx找/var/www/image/目录下的文件
    location /img/ {                       		
    	alias /var/www/image/;                
    }                                        
    
    try_files 和return的使用和区别

    都是结果状态返回,但他们有 不同的使用场景,try_files对根路径 /匹配无效

    • try_files
        location /a {
            try_files $uri $uri/ =400;
        }
    
    • try_files和@使用
        # try_files配合@使用
        location /a {
            try_files $uri $uri/ @test;
        }
        location @test {
            return https://www.baidu.com;
        }
            try_files配合@使用
    
    • return
        location / {
            return 302 https://www.baidu.com;
        }   
    
  • 相关阅读:
    oracle 如何用触发器实现更新刚插入的数据
    数据库好论坛
    不同的用户导入数据库
    用函数式编程技术编写优美的 JavaScript
    使用GridView自带的ToolTip隐藏过长的数据
    含有dropdownlist的gridview增删改查
    数据分析
    数据分析
    xshell链接vbox 上 nat 方式链接虚拟机
    测试开发方法概述
  • 原文地址:https://www.cnblogs.com/snailrunning/p/12105116.html
Copyright © 2020-2023  润新知