nginx配置

1. location语法

location [=|~|~*|^~] uri { … }

四种标识符的含义

标识符

描述

=

精确匹配:用于标准uri前,要求请求字符串和uri严格匹配。如果匹配成功就停止匹配,立即执行该location里面的请求。

~

正则匹配:用于正则uri前,表示uri里面包含正则,并且区分大小写。

~*

正则匹配:用于正则uri前,表示uri里面包含正则,不区分大小写。

^~

非正则匹配;用于标准uri前,nginx服务器匹配到前缀最多的uri后就结束,该模式匹配成功后,不会使用正则匹配。

普通匹配(最长字符匹配);与location顺序无关,是按照匹配的长短来取匹配结果。若完全匹配,就停止匹配。

 

2. root 与 alias 的区别

 

root

location ^~/uploads/ {
    root  D:/java/php_projects/test0324/public;
 }

^~/uploads/ 表示匹配前缀是uploads的请求

如请求 /uploads/file/test.png

真实请求文件就是 D:/java/php_projects/test0324/public/uploads/file/test.png

他会将请求的url直接拼接在root后面

 

alias

location ^~/uploads/ {
    alias    D:/java/php_projects/test0324/public/uploads/;
}

^~/uploads/ 表示匹配前缀是uploads的请求

如请求 /uploads/file/test.png

真实请求文件就是 D:/java/php_projects/test0324/public/uploads/file/test.png

他会将请求的url去除掉拦截的路径之后再拼接在alias后面

也就是把 file/test.png 拼接在 D:/java/php_projects/test0324/public/uploads/ 之后

 

一般配置

一般都是在 location / 配置root目录

在其他的 location 就配置 alias 虚拟目录

3. 代理

 

代理http

server {
	    listen 4536;
	    server_name  localhost;
	    location / {
              proxy_pass   http://192.168.1.134:4536/;
              proxy_redirect off;
              proxy_set_header Host $host;
              proxy_set_header Ali-CDN-Real-IP $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
		
	}

 

代理websocket

http {
  #核心配置
  map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
  }


  server {
                listen 80;
                server_name netty.chatserver.beizhanxiao.com;
                location / {
                   proxy_pass http://127.0.0.1:8192/;
                   proxy_redirect off;
                   proxy_set_header Host $host:$server_port;
                   proxy_set_header Ali-CDN-Real-IP $remote_addr;
                   proxy_set_header REMOTE-HOST $remote_addr;
                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                   proxy_http_version 1.1;
                   proxy_set_header Upgrade $http_upgrade; #核心配置
                   proxy_set_header Connection "upgrade"; #核心配置
                }
          }
}

4. gzip

开启gzip配置是在http层加的。

参数说明:

#修改配置为
gzip on;                     #开启gzip压缩功能
gzip_min_length 10k;         #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小.
gzip_buffers 4 16k;          #设置压缩缓冲区大小,此处设置为4个16K内存作为压缩结果流缓存
gzip_http_version 1.1;       #压缩版本
gzip_comp_level 2;           #设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是0到9中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6
gzip types text/css text/xml application/javascript;      #制定压缩的类型,线上配置时尽可能配置多的压缩类型!
gzip_disable "MSIE [1-6]\.";       #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip vary on;    #选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩

常用配置:

gzip  on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

5. ssl

server {
		listen 443 ssl;
		server_name api.beizhanxiao.com;
		
		ssl_certificate      cert/api.beizhanxiao.com.pem;
                ssl_certificate_key  cert/api.beizhanxiao.com.key;
		
		ssl_session_timeout 5m;

		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 / {
		   proxy_pass http://127.0.0.1:8190/;
		   proxy_redirect off;
           	   proxy_set_header Host $host;
           	   proxy_set_header Ali-CDN-Real-IP $remote_addr;
           	   proxy_set_header REMOTE-HOST $remote_addr;
           	   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	           client_max_body_size 500m;
		} 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值