Nginx

分类下相关文章

阿里云 Nginx SSL 证书配置

申请免费的阿里云 SSL 证书 首先参考这里申请一个免费的阿里云 SSL 证书 七牛云 CDN SSL 证书过期处理 Nginx 配置 将 Nginx 对应的证书下载到服务器上,配置参考 server { listen 80; server_name xxx.sunzhongwei.com; return 301 https://xxx.sunzhongwei.com$request_uri; } server { listen 443; server_name xxx.sunzhong ...

阅读全文...

Nginx 下 HTTPS 域名错乱的问题

我的博客服务器上,除了 https://www.sunzhongwei.com 这个网站之外,还有一些其他的网站,用的其他的域名。 但是,在 为博客启用了 HTTPS 之后,今天看百度统计的实时访客,看到了一个奇怪的问题。即通过 https://some-other-domain.com/some-url 来访问对应的 https://www.sunzhongwei.com/some-url 结果就是 Google 浏览器显示了一个安全警告页面,认为这是一个不安全的网页。因为我只配置了 www.sunzhongwei.com 的 SSL 证书,其他域名并没有配置。 解决方法 在 Certbo ...

阅读全文...

Windows WSL 中安装的 Nginx / PHP-FPM 超时问题

WSL 中搭建了一套 Nginx PHP-FPM 环境,但是在浏览器中访问 http://localhost 永远会超时。 错误日志如下 2018/11/08 09:22:49 [error] 1322#1322: *7 upstream timed out (110: Connection timed out) while reading upstream, client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.1-fpm. ...

阅读全文...

Nginx 直接返回终端请求 IP

直接 Nginx 配置文件中配置即可,无需代码。 location /get_ip { default_type text/plain; return 200 "$remote_addr\n"; } ...

阅读全文...

nginx + wordpress 上传图片报错 413 Request Entity Too Large

感觉每年都要处理几次这个错误。。。 现象是 wordpress 后台上传一个 1.2 M的背景图,前端显示HTTP错误。从网络请求看是后台报错了 413 错误。 413 Request Entity Too Large 解决方法是在 Nginx 对应域名的配置中添加 client_max_body_size 3m; 然后 reload nginx。 client_max_body_size 的默认大小 参考 http://nginx.org/en/docs/http/ngx_http_core_module.html Default: client_max_body_size 1m; 默 ...

阅读全文...

nginx 同一域名下配置 yii2 的 frontend 和 backend

第一次看 yii2 的代码结构,非常不适应。居然 frontend 和 backend 分成了两个独立的文件夹。。。完全没有我大 laravel 的优雅之风。 而且大兄弟是用的 YiiBoot 这种冷门的东西。YiiBoot 类似于 Laravel 的 Backpack,使用 Yii2 + AdminLTE + mysql,开发高效的通用管理后台,同时可以自动生成 model controller 的代码。) 设置了 common\config\main.php 中的 MySQL 配置之后,就是 Nginx 配置了。 Github 上找到一个配置,稍作修改就能运行起来了。 server { ...

阅读全文...

nginx location 配置中 try_files, alias, root, index 的使用场合

需求场景 朋友让我帮忙挂一个网页,有点类似“钓鱼”的性质(开玩笑,没这么严重),就是找一个类似的域名,把原网站其中一个网页完全复制过来,修改其中的内容,然后给甲方看。但是,这个新域名的其他 URL 都需要跳转到原域名。 假设,原域名为 a.com, 新域名为 b.com。规则是: http://www.b.com/a/b.aspx?id=1024 显示“钓鱼”页,但是 http://www.b.com 需要 301 跳转到 http://www.a.com 解决方案 起初随手写了一套配置,怎么也满足不了需求,后来翻了一本关于 Nginx 的书,才有了思路。 配置如下 server { ...

阅读全文...

Nginx autoindex 共享下载目录的中文文件名显示问题

使用 Nginx autoindex 做了一个 Laravel 网站的共享文件下载目录,但是其中的中文显示成乱码。如下图 解决方法,Nginx config 文件中设置编码集即可,例如 utf-8 location = /qrcodes/ { charset utf-8; autoindex on; } ...

阅读全文...

使用 Nginx 代理转发解决 Weex 本地 H5 调试的跨域问题

使用 Weex 开发 APP, 有一个坑,就是如果使用浏览器进行接口调试,会遇到 js 的跨域问题。 虽然,APP 上不会有此问题,但是严重影响了调试。 例如,本地 H5 调试页面,报错 XMLHttpRequest cannot load http://x.x.x.x:8080/services/zhongweiService. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' is therefore not allow ...

阅读全文...

慎用 Nginx 的 default_server

在新买的阿里云服务器上把部分网站迁移了过来,一时脑热把一个域名设置成了 default_server,为了使用 IP 测试网站是否部署的有问题。 例如: server { listen 80 default_server; server_name www.sunzhongwei.com _; ... } 问题很快就出现了,从百度统计上看到,有不少用户访问来自几个奇怪的域名。而流量来源是 Google。 也就是说,我的网站内容被 Google 通过不属于我的域名收录了。 通过 dig +trace 发现这几个域名都是把 IP 指向了我的新服务器。。。 这 ...

阅读全文...

屏蔽垃圾评论来源 IP 段

最近垃圾评论越来越猖獗,27.150.x.x 这个 IP 段尤为过分,逐个加 IP 黑名单已没有效果,只能批量屏蔽 部分现有的 Nginx IP 黑名单 deny 188.143.232.0/24; deny 91.200.12.0/24; deny 136.169.199.0/24; deny 114.37.239.162; deny 1.161.122.133; deny 27.150.247.255; deny 27.150.241.34; deny 27.150.246.221; deny 27.150.242.42; deny 27.150.24 ...

阅读全文...

nginx location 常见匹配规则

整理一下 nginx location 的常见规则。 需要注意的是,Nginx Location 规则并不是按照书写顺序进行优先匹配的。 而是按照规则优先级进行匹配。 ~* case insensitive matching, 不区分大小写的正则匹配 ~ case sensitive matching, 即区分大小写的正则匹配 = exact match, 精确匹配 ^~ 匹配任何以会面规则开头的地址,匹配以后,不在往下检索正则,立即采用这一条。 实例 location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 ...

阅读全文...

与垃圾评论的苦斗

早上扫了一眼博客,发现出现了大量的垃圾评论,本来想晚上再解决,但是这次频率太高了,几乎两分钟一条,实在是不能忍! 查看垃圾评论的来源 IP Nginx 日志 grep 'POST /comments' access.log | awk '{print $1, $4}' 还好这波垃圾评论的 IP 有规律 188.143.232.27 [11/Jan/2017:10:27:25 188.143.232.27 [11/Jan/2017:10:28:27 188.143.232.27 [11/Jan/2017:10:28:57 188.143.232.32 [11/Jan/2017:10:32:20 ...

阅读全文...

Nginx 模拟 Backbone 请求的 JSON 接口

团队同步开发时,通常不能保证后台接口在开发初期可用。 所以,就需要前端自己模拟 API 的返回应答。 记录一下我是如何用 Nginx 来模拟 JSON 接口的 例如,我前端要发送一个请求 POST /api/new-stock 需要后台返回 JSON { 'err_code': 0, 'msg': 'OK' } 只需要将这个 JSON 结果写入 new-stock 文件,然后置于目录 /home/zhongwei/work/someproject/api/ 下。 这是对应的 Nginx 配置文件 server { listen 80 default_server; liste ...

阅读全文...

如何限制恶意用户刷站 - Nginx 限速规则

真实案例 收到短信报警,调用一些三方 API 接口超时。从 Nginx 看,发现是一个调用三方 API 接口被刷。 短时间内超过了百万次。不可避免的影响了正常业务。 刷站请求特征 短时间内,单 IP 针对单一有利用价值接口做大量请求 请求头为非浏览器 请求量暴涨,日请求总量为平时量的 20 倍 解决方法 在 Nginx 上限制单 IP 单位时间的请求数,以及单 IP 的并发连接数。 http { limit_req_zone $binary_remote_addr zone=one:10m rate=8r/s; server { location /sea ...

阅读全文...