天天看点

LNMP下Nginx.conf常用配置项详解

当出现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 ,如图:

LNMP下Nginx.conf常用配置项详解

 参数解析:

参数

释义

Active connections

当前 Nginx 正处理的活动连接数

server accepts handled requests

总共处理了467079 个连接 , 成功创建 467079次握手,总共处理了5387526个请求

Reading

Nginx读取到客户端的 Header 信息数

Writing 

Nginx返回给客户端的 Header 信息数

Waiting

 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接

继续阅读