nginx跨域配置及压缩配置
前言(什么是跨域请求)
跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指的是这样的一个概念:我们认为若协议 + 域名 + 端口号均相同,那么就是同域。
常见跨域情况
- 网络协议不同,如http协议访问https协议
- 端口不同,如80端口访问8080端口
- 域名不同,如www.test1.com访问www.test2.com
- 子域名不同,如abc.test1.com访问def.test1.com
跨域及压缩配置示例
gzip on;
gzip_buffers 4 16k;
gzip_min_length 1k;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml image/jpeg image/gif image/png;
server {
listen 80; # 监听的端⼝
server_name localhost; # 域名或ip
location / {
#允许跨域请求的域,* 代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ttf|woff|pdf|doc|docx|PNG|JPG|JPEG|ico)$ {
expires 30d;
}
root /usr/share/nginx/html;# 根⽬录
index index.html index.htm; # 默认⾸⻚
}
error_page 500 502 503 504 /50x.html; # 错误⻚⾯
location = /50x.html {
root html;
}
}