两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
public:it:nginx [2019/01/21 14:59] – [配置语法] oakfire | public:it:nginx [2024/10/31 11:32] (当前版本) – [Articles] oakfire |
---|
* 停止''nginx -s stop'' | * 停止''nginx -s stop'' |
* 重载配置 ''nginx -s reload'' | * 重载配置 ''nginx -s reload'' |
| ===== Articles ===== |
| * [[http://tengine.taobao.org/book/index.html|Nginx开发从入门到精通-淘宝]] |
| * [[https://betterstack.com/community/guides/logging/how-to-view-and-configure-nginx-access-and-error-logs/|nginx 日志详解]] |
===== 配置语法 ===== | ===== 配置语法 ===== |
* [[https://www.jianshu.com/p/9fd2ea5b7d12|Nginx Location 正则表达式]] | * [[http://nginx.org/en/docs/|official docs]] |
* location 配置语法:<code nginx>location [ = | ~ | ~* | ^~ ] uri { ... } | * location 配置语法:[[http://nginx.org/en/docs/http/ngx_http_core_module.html#location|official doc]]<code nginx>location [ = | ~ | ~* | ^~ ] uri { ... } |
location @name { ... }</code> | location @name { ... }</code> |
* 默认(无标记)是前缀最长匹配; | * 默认(无标记)是前缀最长匹配; |
* ''^~'': 表示普通字符匹配,前缀匹配有效则配置直接生效,停止向下查找 | * ''^~'': 表示普通字符匹配,前缀匹配有效则配置直接生效,停止向下查找 |
* ''@'' 自定义量 | * ''@'' 自定义量 |
* 优先级 ''='' > ''^~'' > ''~''/''~*'' | * 匹配优先级官方文档: |
| - Directives with the = prefix that match the query exactly. If found, searching stops. |
| - All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops. |
| - Regular expressions, in order of definition in the configuration file. |
| - If #3 yielded a match, that result is used. Else the match from #2 is used. |
| * 中文: |
| - ''='' 的指令严格匹配这个查询。如果找到,停止搜索。 |
| - 所有剩下的常规字符串,最长的匹配。如果这个匹配到^〜前缀,搜索停止。 |
| - 正则表达式,在配置文件中定义的顺序。 |
| - 如果第3条规则产生匹配的话,结果被使用。否则,使用第2条规则的结果。 |
| |
===== 去除 server header 版本号 ===== | ==== 去除 server header 版本号 ==== |
* 在 ''/etc/nginx/nginx.conf'' 里 http 下 添加 ''server_tokens off'';修改 ''/etc/nginx/fastcgi_param'' 与 ''/etc/nginx/fastcgi.conf'' 下的对应条; | * 在 ''/etc/nginx/nginx.conf'' 里 http 下 添加 ''server_tokens off''; |
| * 修改 ''/etc/nginx/fastcgi_param'' 与 ''/etc/nginx/fastcgi.conf'' 下的对应条''SERVER_SOFTWARE''; |
* 或者修改源码,或者用插件 :[[http://stackoverflow.com/questions/246227/how-do-you-change-the-server-header-returned-by-nginx]] | * 或者修改源码,或者用插件 :[[http://stackoverflow.com/questions/246227/how-do-you-change-the-server-header-returned-by-nginx]] |
| |
===== 添加基本认证 ===== | ==== 添加基本认证 ==== |
* [[https://www.nginx.com/resources/admin-guide/restricting-access-auth-basic/|Restricting access auth basic]] | * [[https://www.nginx.com/resources/admin-guide/restricting-access-auth-basic/|Restricting access auth basic]] |
* [[http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html|ngx_http_auth_basic_module]] | * [[http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html|ngx_http_auth_basic_module]] |
| |
===== 一些配置注意点 ===== | ==== Tips ==== |
* [[https://github.com/vulhub/vulhub/tree/master/nginx/insecure-configuration|Nginx 配置错误导致漏洞]] | * [[https://github.com/vulhub/vulhub/tree/master/nginx/insecure-configuration|Nginx 配置错误导致漏洞]] |
* 用 ''$request_uri''代替 ''$uri'' | * 用 ''$request_uri''代替 ''$uri'' |
* [[https://github.com/yandex/gixy|检测nginx配置是否有安全问题的工具: gixy]] | * [[https://github.com/yandex/gixy|检测nginx配置是否有安全问题的工具: gixy]] |
| * nginx 转发直播视频流时一定要关掉代理缓存:''proxy_buffering off'', 不然会造成视频流的延时! |
| * ''add_header'' 可以添加响应头字段,但它不会判断原字段是否存在,可能造成重复添加(比如cors头字段重复,浏览器会报错),此时可以考虑使用插件 ''more_set_headers'', 需额外安装模块并让 nginx 加载 |
| |
| |