当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is present on the requested resource时,
需要给Nginx服务器配置以下响应的header参数以解决跨域问题;
方法1,使用return 301重定向:
方法2,使用rewrite重定向:
对于return和rewrite的区别,可以阅读这篇文章:Creating NGINX Rewrite Rules
另外:推荐自动生成正确的 Nginx SSL 配置网站(默认开启了 HSTS ):https://mozilla.github.io/server-side-tls/ssl-config-generator/
指令作用
匹配指定的请求uri(请求uri不包含查询字符串,如http://localhost:8080/test?id=10,请求uri是/test)
语法形式
匹配模式及顺序
匹配方式:普通字符串(literal string)和正则表达式(regular expression),其中 ~ 和 ~* 用于正则表达式, 其他前缀和无任何前缀都用于普通字符串。
匹配顺序:先匹配普通字符串,将最精确的匹配暂时存储;
常用配置指令alias、root、proxy_pass
1、alias:别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向alias配置的路径,如:
请求/test/1.jpg(省略了协议和域名),将会返回文件/usr/local/1.jpg。
如果alias配置在正则匹配的location内,则正则表达式中必须包含捕获语句(也就是括号()),而且alias配置中也要引用这些捕获值。如:
请求中只要能匹配到正则,比如/img/flower.png 或者 /resource/img/flower.png,都会转换为请求/usr/local/images/flower.png。
2、root:根路径配置,用于访问文件系统,在匹配到location配置的URL路径后,指向root配置的路径,并把请求路径附加到其后,如:
请求/test/1.jpg,将会返回文件/usr/local/test/1.jpg。
3、proxy_pass——反向代理配置,用于代理请求,适用于前后端负载分离或多台机器、服务器负载分离的场景,在匹配到location配置的URL路径后,转发请求到proxy_pass配置额URL,是否会附加location配置路径与proxy_pass配置的路径后是否有"/"有关,有"/"则不附加,如:
请求/test/1.jpg,将会被nginx转发请求到http://127.0.0.1:8080/1.jpg(未附加/test/路径)。
通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module,然后配置Nginx.conf,在server点里面加入如下内容
location /status {
stub_status on;
access_log /usr/local/nginx/logs/status.log;
auth_basic "NginxStatus";
}
配置完后重新启动Nginx后,我们可以通过浏览器访问http://localhost/status ,如图:

参数解析:
参数
释义
Active connections
当前 Nginx 正处理的活动连接数
server accepts handled requests
总共处理了467079 个连接 , 成功创建 467079次握手,总共处理了5387526个请求
Reading
Nginx读取到客户端的 Header 信息数
Writing
Nginx返回给客户端的 Header 信息数
Waiting
开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接