Nginx 暴力解决使用 CDN/负载均衡后日志里记录的 IP 不是用户真实 IP | Nginx 获取真实用户 IP 作者: Chuwen 时间: 2020-04-17 分类: Nginx 评论 # 暴力配置 > 修改 `nginx.conf` 或 `vhost.conf` 之类的文件,将以下配置放在 `http` 里或 `server` 里,实现的效果请继续往下看 ``` set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; real_ip_recursive on; ``` ## 1. 放在 `http` 里,放到这里是全局的,一劳永逸 > 注意:我测试并没有什么异常,即使是加了 CDN 和没加 CDN,Nginx 日志都一样正确记录 IP(前提是你像我这样配置了) ![放在 `http` 里,放到这里是全局的,一劳永逸][1] ## 2. 放在 `server` 里,每个网站单独配置 ![放在 `server` 里,每个网站单独配置][2] # 效果 ![效果][3] [1]: https://cdn.nowtime.cc/2020/04/17/4089011037.png [2]: https://cdn.nowtime.cc/2020/04/17/2020278309.png [3]: https://cdn.nowtime.cc/2020/04/17/4204025706.png
Nginx/Tengine 添加模块(非覆盖安装) 作者: Chuwen 时间: 2020-04-06 分类: Nginx 评论 > 假设我要添加 [nginx-http-concat][1] 这个模块 # 查看原来的编译参数 ``` nginx -V ``` 返回结果 ``` root@Chuwen:~/tengine-2.3.2# nginx -V Tengine version: Tengine/2.3.2 nginx version: nginx/1.17.3 built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) built with OpenSSL 1.1.1b 26 Feb 2019 TLS SNI support enabled configure arguments: --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module ``` # 添加需要的模块 ``` --add-module=/root/nginx-http-concat-master ``` # 重新编译配置 > 加上之前的参数与新增的参数 ``` # 进入源码目录,假设你没有删除 cd /www/server/nginx ./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/root/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module \ --add-module=/root/nginx-http-concat-master # 添加模块 ``` # 执行编译,但不安装 ``` make ``` # 查看下编译好的二进制文件 ``` ldd objs/nginx |grep lua ``` # 替换 nginx 二进制文件 ``` mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_back_2020.04.06 cp ./objs/nginx /www/server/nginx/sbin/nginx ``` --- 参考自:https://blog.linuxhub.cn/?p=3220 [1]: https://github.com/alibaba/nginx-http-concat
Nginx如何配置跨域(多个域名) 作者: Chuwen 时间: 2020-03-17 分类: Nginx 评论 ### 设需要允许来源为 `localhost` 或 `*.example.com` 下所有二级域名的访问,在 nginx 中只需要类似这样配置即可: ``` location / { set $match ""; # 支持http及https if ($http_origin ~* 'https?://(localhost|.*\.example\.com)') { set $match "true"; } if ($match = "true") { add_header Access-Control-Allow-Origin "$http_origin"; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; add_header Access-Control-Allow-Methods GET,POST,OPTIONS,DELETE; add_header Access-Control-Allow-Credentials true; } # 处理OPTIONS请求 if ($request_method = 'OPTIONS') { return 204; } } ———————————————— ``` --- 原文链接:https://blog.csdn.net/moxiaomomo/article/details/82970004
ThinkPHP 5.1 开启了 app_debug,但访问不存在的模块依旧是 nginx 默认 404 页面 解决办法 作者: Chuwen 时间: 2019-01-08 分类: Nginx 评论 ## 只需要在 nginx.conf 加上下面代码即可: ``` fastcgi_intercept_errors on; ```
宝塔(BT)面板-Nginx如何开启PHP报错 作者: Chuwen 时间: 2017-06-05 分类: Nginx 评论 使用宝塔(BT)面板搭建的 LNMP 环境(L:Linux,N:Nginx,M:MySQL,P:PHP),本地测试代码时,没有发现什么问题,但是,放到服务器上时就出现 500 错误了,没有任何错误提示,查看日志,也只能看到 500,很是纳闷,然后Goole查了些资料,在这里做一个笔记。- 阅读剩余部分 -