nginx
记录一下配置
跨域
# 指定允许跨域的方法,*代表所有
add_header Access-Control-Allow-Methods *;
# 预检命令的缓存,如果不缓存每次会发送两次请求
add_header Access-Control-Max-Age 3600;
# 不带cookie请求,并设置为false
add_header Access-Control-Allow-Credentials false;
# 表示允许这个域跨域调用(客户端发送请求的域名和端口)
# $http_origin动态获取请求客户端请求的域 不用*的原因是带cookie的请求不支持*号
# always 当状态码是 200,201,204,206,301,302,303,304,307 时nginx会添加header,而 401、404、500,都没有添加header。
# 由于 Access-Control-Allow-Origin * 选项未生效,导致返回的response header里面没有允许跨域请求的选项 所以加上always
add_header Access-Control-Allow-Origin $http_origin always;
# 表示请求头的字段 动态获取
add_header Access-Control-Allow-Headers $http_access_control_request_headers;
# OPTIONS预检命令,预检命令通过时才发送请求
# 检查请求的类型是不是预检命令
if ($request_method = OPTIONS){
return 200;
}
ssl
listen 443 ssl;
server_name lixianglin.com;
client_max_body_size 15M;
ssl_certificate cert/7454185_www.xxxx.com.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/7454185_www.xxx.com.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
转发请求
location ^~ /prod-api/ {
proxy_pass http://127.0.0.1:8080/;#转发请求的地址
proxy_connect_timeout 6000;#链接超时设置
proxy_read_timeout 6000;#访问接口超时设置
}
gzip
html{
gzip on;
gzip_static on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 8;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
}
vue-router
解决vue-router history 模式刷新404
# 单页面
location / {
try_files $uri $uri/ /index.html;
}
# 多目录
location /manager/ {
try_files $uri $uri/ /manager/index.html;
}