zoukankan      html  css  js  c++  java
  • Nginx 配置及参数详解

    Nginx 配置及参数详解

    Nginx Location 指令语法

    如下就是常用的 location 配置的语法格式,其中modifier是可选的,location_match就是制定 URI 应该去往哪个配置的关键.

    location optional_modifier location_match {
     . . .
    }
    复制代码
    

    Regular expressions(RE)或者字面量都可以用来定义modifier,如果 location 配置中制定了modifier,可能会改变 nginx匹配 location的方式,如下介绍几种最重要的modifier:

    • (none) 完全没有modifier表示 location会解释为前缀匹配,要确定匹配项,将根据从URI的开头匹配该location.
    • = 等号表示当前这个 location 会匹配一个确定的请求,配置什么就匹配什么请求,如果匹配上了,就会停止搜索.
    • ~ 波浪号表示当前这个 location 会当成一个大小写敏感的RE匹配.
    • ~* 波浪号跟星号标识 location 会按照大小写不敏感的 RE 匹配.
    • ^~ 非表达式(RE)匹配,正则表达式将不会生效.

    Ngnix Location的匹配顺序

    对于每个请求来说,nginx 会选择最匹配的一个 location 来处理这个请求,nginx 其实就是通过对比这些 location 规则来选择一个 location,对比的顺序可以总结为:

    1. 首先匹配前缀匹配(没有 RE 表达式),针对当前这个请求,每个前缀匹配都匹配一遍.
    2. 搜索=匹配,如果当前请求匹配上了,搜索将会停止,直接使用这个这个 location.
    3. 如果第二步没有匹配上,nginx 会按照如下步骤继续搜索最长前缀匹配: 3.1 如果最长前缀匹配有^~这个modifier,nginx 会停止搜索并直接使用这个 location. 3.2 如果没有使用 ^~,暂存这个 location并且继续搜索.
    4. 只要最长前缀匹配被暂存和选中,nginx 就会看当前的 location 是否有大小写敏感的 RE(~~*),第一个匹配上这种会被当做有效的 location来处理这个请求.
    5. 如果没有 RE 的 location 匹配上,前面暂存的 location 就会被选中来处理这个请求.

    注:所以 没有修饰符的 location 其实是很浪费资源的,可以用 ^~ 来替代.

    常用配置

    server {
    	#监听端口
    	listen	443;
    	#定义使用 访问域名
    	server_name xxx.com
    	#定义服务器默认的网站根目录位置
    	root /web/www;
    	
    	#设定本虚拟主机默认访问日志
    	access_log /var/logs/nginx.access.log main;
    	
    	#ssl证书配置
    	#ssl on; 最新版本已不用设置此参数,设置后可能无法启动
    	#证书文件 ,这里为相对于/etc/nginx/nginx.conf 文件的相对位置
    	ssl_certificate 1_xxx.com.crt;
    	#证书key文件
    	ssl_certificate_key 2_xxx.com.key;
    	# ssl session 超时
    	ssl_session_timeout 5m;
    	#ssl 协议级别
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    	#加密方式
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    	ssl_prefer_server_ciphers on;
    	
    	#请求设置
    	location / {
    		#网站根目录,可使用全局设置
    		root /web/www;
    		#定义默认首页索引文件的名称
    		index index.html;
    		
    	}
    	
    	location ~ ^/
    	
    }
    

    后续补充完善......

  • 相关阅读:
    java的学习笔记
    tomcat配置方法
    《编写高质量代码》学习笔记
    Servlet的学习笔记
    Http协议的学习笔记
    树莓派开箱使用分享以及一些心得
    树莓派的骚操作
    Linux的学习笔记
    msyql高级的学习笔记
    项目业务记录
  • 原文地址:https://www.cnblogs.com/h-gallop/p/11984634.html
Copyright © 2011-2022 走看看