stub_status : 提供访问基础状态信息
ngx_http_stub_status_module
模块提供访问的基础信息
该模块不是默认构建的,应该使用配置参数 --with-http_stub_status_module
启用
ngx_http_stub_status_module
模块提供访问的基础信息
该模块不是默认构建的,应该使用配置参数 --with-http_stub_status_module
启用
通过查看 nginx 编译参数可以知道当前 nginx 支持的模块, 从而知道支持那些功能
安装 Nginx 时可以选择配置文件的路径,由于 Nginx 程序后续可能会升级版本,但配置基本上就是一份,那么推荐使用配置和程序分离的方式,遵循:
如:
有的时候,我们需要配置一些自定义的子域名,如:
xuexb.user.demo.com
a01.user.demo.com
这时候就需要域名的 DNS 解析一个泛域名 *.user.demo.com
到服务器,Nginx 可以配置如下:
PV(Page View):即页面浏览量或者点击量,用户每一次对网站中每个页面访问均记录 1 个 PV。用户对同一页面的多次访问,访问量累积。
UV(Unique Visitor):指通过互联网浏览这个网页的人,电脑称为一个访客、手机也称为一个访客,一天之内相同的客户端只能被计算一次。
IP(Internet Protocol):指独立 IP 访问站点的 IP 总数,一天内相同 IP 只能算一次。
VV(Visit View):指所有访客一天内访问网站的次数,当访客完成所有浏览并最终关闭网站的所有页面时变完成了一次访问,同一访客一天内可能有多次访问行为,访问次数累积。
接下来看一下 Nginx 的配置文件:
/etc/nginx/nginx.conf
再看一下 access.log:
/var/log/nginx/access.log
access.log 文件里面的remote_user…等
查看各个访问量:
1.根据访问 IP 统计 UV
Nginx echo 模块是在 nginx 程序上扩展了 echo
输出字符的功能,对于调试很方便,项目地址: https://github.com/openresty/echo-nginx-module 。
nginx-http-concat 是一个 Nginx 扩展模块,用来合并 HTTP 请求。
你的网站可能有多个域名访问,比如:www.wulicode.com
、wulicode.com
等,设置主域意思是不管用户输入哪个域名,都会 301
重定向到主域上,设置主域可以对 SEO 更友好,比如:
说到 Nginx 就不得不说 Nginx 的反向代理是多么的好用,一个指令 proxy_pass
搞定反向代理,对于接口代理、负载均衡很是实用,但 proxy_pass
指令后面的参数很有讲究。
网上有很多什么绝对路径、相对路径的说法,其实在实际的应用中就分为两种情况:
服务端如果使用nodejs
运行服务,由于端口不能同时多个服务占用,而服务器中可能又是多个网站,那么可以使用 Nginx 做反向代理,比如有这些网站域名和端口:
域名 | 端口 |
---|---|
www.xxoo.com | 8001 |
www.xo.com | 8002 |
www.xo.cn | 8003 |
当然一个服务器上的网站可能还有更多,可以通过配置 Nginx 转发来代理这些端口分发,如:
官方的介绍:
Adds the specified field to a response header provided that the response code equals 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), or 308 (1.13.0). The value can contain variables.
There could be several add_header directives. These directives are inherited from the previous level if and only if there are no add_header directives defined on the current level.
If the always parameter is specified (1.7.5), the header field will be added regardless of the response code.
意思也就是说话在响应状态码成功时,add_header
指令才生效,并且当前《作用域》下没有 add_header
指令时,会向上层继承。
在使用过程中难免会遇到上级指令被覆盖的情况,如:
未优化之前的连接数 NotEstablished 的数量到达了一定的峰值, 然后处于持平状态, 在这个时候服务器日志会报 500 错误
这个地方考虑到的可能性是链接数过多导致的服务器
/etc/sysctl.conf
1 | server { |
如:
1 | server { |
注意 error_page
配置时加 =
和不加 =
的区别,加了 =
表示响应为指定的 http status code
,默认为 200,不加 =
为原错误的状态码~
1 | # 这样可以访问错误页面时 http status 为 404 ,并且页面内容是 404.html 的内容 |
这样就可以根据自己需求配置错误页为指定的状态码,因为非 200 的状态码可能会被浏览器拦截。
Nginx(发音同 engine x)是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存。该软件由 Igor Sysoev 创建,并于 2004 年首次公开发布。同名公司成立于 2011 年,以提供支持。Nginx 是一款免费的开源软件,根据类 BSD 许可证的条款发布。一大部分 Web 服务器使用 Nginx ,通常作为负载均衡器。