Nginx其他配置
2019-08-05 本文已影响0人
爱吃豆包
alias 和 root 大致区别
location /file/{
alias /var/html/file; #这个查找文件的路径直接是/var/html/file
}
location /file/{
root /var/html/file; #这个查找文件的路径应该是/var/html/file/file
}
try_files 解释
location /images/ {
root /opt/html/;
try_files $uri $uri/ /images/default.gif;
}
比如 请求 127.0.0.1/images/test.gif 会依次查找(在哪个步骤找到了,就用哪个)
1.文件/opt/html/images/test.gif
2.文件夹 /opt/html/images/test.gif/下的index文件
3.请求127.0.0.1/images/default.gif
其他注意事项
try-files 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页 即 访问127.0.0.1/images/ 不会去访问 127.0.0.1/images/index.html
关键点1:按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理
关键点2:查找路径是按照给定的root或alias为根路径来查找的
关键点3:如果给出的file都没有匹配到,则重新请求最后一个参数给定的uri,就是新的location匹配
关键点4:如果是格式2,如果最后一个参数是 = 404 ,若给出的file都没有匹配到,则最后返回404的响应码
nginx gizp配置
可以配置在 location 或者 http 或 server 内
比如我这里配置
# 默认首页
location /little_monsters {
index index.html index.htm;
#try_files $uri $uri/ /index.html;
#root /root/javaProject/;
alias /root/javaProject/little_monsters/dist/;
try_files $uri $uri/ /dist/index.html;
gzip on;
gzip_types application/javascript text/css image/jpeg image/png;
}
# 映射 静态 目录
location /static/ {
root /root/javaProject/little_monsters/dist/;
index index.html index.htm;
gzip on;
gzip_types application/javascript text/css image/jpeg image/png;
}
这里是gzip所有属性(可以配置在 location 或者 http 或 server 内)
server {
# 开启gzip on为开启,off为关闭
gzip on;
# 检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容,不存在则先压缩再返回
gzip_static on;
# 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
# 默认值是0,不管页面多大都压缩。
# 建议设置成大于10k的字节数,配合compression-webpack-plugin
gzip_min_length 10k;
# 对特定的MIME类型生效,其中'text/html’被系统强制启用
gzip_types text/javascript application/javascript text/css application/json;
# Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果
# 匹配的前提是后端服务器必须要返回包含"Via"的 header头
# off(关闭所有代理结果的数据的压缩)
# expired(启用压缩,如果header头中包括"Expires"头信息)
# no-cache(启用压缩,header头中包含"Cache-Control:no-cache")
# no-store(启用压缩,header头中包含"Cache-Control:no-store")
# private(启用压缩,header头中包含"Cache-Control:private")
# no_last_modefied(启用压缩,header头中不包含"Last-Modified")
# no_etag(启用压缩,如果header头中不包含"Etag"头信息)
# auth(启用压缩,如果header头中包含"Authorization"头信息)
# any - 无条件启用压缩
gzip_proxied any;
# 请求加个 vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩
gzip_vary on;
# 同 compression-webpack-plugin 插件一样,gzip压缩比(1~9),
# 越小压缩效果越差,但是越大处理越慢,一般取中间值
gzip_comp_level 6;
# 获取多少内存用于缓存压缩结果,‘16 8k’表示以8k*16 为单位获得。
# PS: 如果没有.gz文件,是需要Nginx实时压缩的
gzip_buffers 16 8k;
# 注:99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。
gzip_http_version 1.1;
}
Nginx 跨域解决
# 可以配置 server 或者 location 里面
## 通过客户端请求头信息
proxy_pass_request_headers on;
## 保留客户端的真实信息
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
............
location /api {
proxy_pass http://127.0.0.1:8086/api/;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers $http_access_control_request_headers;
# 如果是请求类型是 OPTIONS 就直接返回 200
if ($request_method = OPTIONS ) {
return 200;
}
}
Nginx 映射静态资源
server {
listen 8012;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 映射 vue 目录
location / {
root E:\vue_b\property;
index index.html index.htm;
}
# 映射 静态 目录
location /static/ {
root E:\vue_b\property\static;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
引入其他conf
配置文件
http {
...... 忽略
include conf_d/*.conf;
}