Articles of nginx

Ubuntu的Nginx阻塞ip地址后,仍然在日志中显示

我有一个服务器,不断试图通过xml-rpc后在WordPress的网站蛮力的黑客入侵。 我已经阻止了nginx.conf中的IP地址,并注意到我一直在日志文件中得到这些错误,并且由于它们是蛮力的,这只是一个非常非常慢的DDOS(因为它们导致日志文件占用空间)。 [错误] 30912#0:* 4600规则,客户端禁止访问: 我在这里search日志文件的变化,但它看起来像403错误的全部或没有,这不会帮助我(不会看到任何其他人)。 为了解决这个问题,我尝试过使用防火墙进行阻塞(在防火墙表中使用UFW包装),并在状态栏中添加了一个条目: 任何地方DENY XXX.XXX.X.XXX(redacted) 但是,即使启用防火墙规则,并检查以确保它们正在运行,当拖尾日志文件我还是一样的错误条目403错误一遍又一遍地写。 有关如何使这个黑客离开而不填写日志文件的任何想法? 这是一个虚拟的14.04 LTS服务器。 编辑:将使用limit_req在这一点上有所作为? 编辑二:这里是UFW状​​态,他是强制POST的网站。 他被成功阻止了,但防火墙不应该阻止他首先到达nginx? To Action From — —— —- 22 ALLOW Anywhere 22/tcp ALLOW Anywhere 2222/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere Anywhere DENY XXX.XXX.X.XXX 22 (v6) ALLOW Anywhere (v6) 22/tcp (v6) ALLOW Anywhere (v6) 2222/tcp (v6) ALLOW Anywhere (v6) […]

什么是允许通过反向代理login到IIS站点的正确方法?

我有一个nginx反向代理,我试图让一个IIS网站login后面的工作。 我发现这个问题被问了几次,但是每个答案都是不一样的,有些问题偏离了我所遇到的问题。 以我目前的configuration,我能够到达login,但我得到一个401错误,并不断要求凭据。 我目前的configuration: 在/ etc / nginx的/网站可用/默认 server { listen 80 default; server_name _; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name server2.mydomain.com; ssl_certificate /usr/local/nginx/conf/mydomain.com.crt; ssl_certificate_key /usr/local/nginx/conf/mydomain.com.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { proxy_pass http://192.168.0.20:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For […]

根据Cookie添加标题

我想添加一个请求标题,指明请求是来自桌面客户端还是移动客户端。 我试图在服务器块中添加这个 if ($http_user_agent ~* 'mobile|phone') && ($http_user_agent !~* 'ipad') { proxy_set_header X-Device-Category "mobile"; } else { proxy_set_header X-Device-Category "desktop"; } 但是nginx -t响应"if" directive is not allowed here 我可以从各种各样的post中了解到, if在Nginx中不能像你想象的那样工作,但是我不确定用其他方法来处理这个问题。 将这个简单的逻辑移到应用程序中不是一个选项,因为Nginx将需要这个caching键。

Nginx与上游Apache的连接:重新协商握手失败

我正在configuration将用作反向代理的新的Nginx服务器。 我们有一个Apache和运行的Debian服务器。 在这个Apache服务器是HTTPS的唯一访问我想隐藏在代理后面的网站。 从代理到上游的连接Apache必须通过HTTPS(服务器位于不同的位置,而Apache只允许HTTPS访问)。 我的问题是从Nginx到Apache的连接失败。 通过HTTPS从浏览器到上游的正常连接没有问题。 从相同的代理连接到Nginx的上游工作。 当Nginx尝试连接上游Apache连接失败, 重新协商握手失败 从代理Nginx的日志(debugging级别)只说: 2016/04/07 15:51:08 [error] 5855#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 94.113.97.9, server: procrastination.com, request: "GET / HTTP/1.1", upstream: "https://77.240.191.234:443/", host: "procrastination.com" 从Apache上游logging: [Thu Apr 07 15:36:48 2016] [info] Initial (No.1) HTTPS request received for child 35 (server procrastination.com:443) [Thu […]

nginx 403当服务静态文件+反向代理

我试图通过nginx来提供节点应用程序,但首先尝试提供可能位于/public文件夹中的静态文件。 我有这么多的工作 – 但是当访问domain.tld/或静态文件夹的索引,我得到一个403; directory index of "/var/www/domain.tld/" is forbidden 。 所有的权限似乎是正确的,所以我很困惑。 这是我的服务器块; server { server_name domain.tld; location / { root /var/www/domain.tld/public; try_files $uri $uri/ @proxy; access_log off; } location @proxy { proxy_pass http://127.0.0.1:3000; } } 访问任何随机页面(包括假定的子目录)正确代理节点应用程序。 但是,在任何现有静态目录的根目录和根目录下, 有任何想法吗?

在nginx中为server_name使用variables

我想在server_name中的nginx中使用一个variables,但不工作。 这可能吗? server { listen 80; index index.php index.html; set $foo "bar.example.com"; server_name $foo; }

我的第一个“生产”debian服务器configuration

我一直在使用Debian一年,主要是作为我公司内部服务器的发行版。 现在我正在build立一个公共的电子商务网站,并计划在这个数据中心使用专门的Debian服务器。 我将接受信用卡进行支付,并直接将其传送到银行网关,而不存储任何CC信息。 我将使用Django 1.1.1,mod_wsgi,Apache2来运行django和nginx来提供静态媒体。 你认为这是一个很好的设置? 你会以服务器configuration的名义build议什么安全措施? 任何build议,链接到最佳做法和教程将不胜感激:)

如何使用高速caching反向代理(如Squid,Varnish或Nginx)来caching具有个性化标题的网页

几乎每个网页都是dynamic生成的。 但是,他们不经常改变(有点类似于论坛页面)。 所以我想使用caching反向代理(如Squid,varnish或Nginx)来caching它们。 问题是,对于我login的用户,他们每个人都会在页面右上angular看到一个名为“Welcome John Doe。Logout”的个性化页眉(就像serverfault一样)。 而没有login的用户会看到一个标题“Login”。 所以基本上,即使每个用户都会看到相同的页面,但是由于该个性化页眉的不同,它们的版本也略有不同。 有没有什么办法可以caching页面的“主要”部分,并从caching中提供服务,同时为每个用户dynamic生成个性化头文件? 这一定是一个非常普遍的问题。 一般如何解决?

如果Apache位于Nginx的后面,那么ModSecurity是必须的

我有我的Apache安装在Nginx后面。 所以每一个进来的请求都是由Nginx首先处理的。 如果有需要的dynamic内容请求被发送到在端口8080监听的Apache。 很基本的反向代理设置。 现在使用这个设置,第一个入口点是Nginx。 是否仍然需要安装ModSecurity来保护Apache免受不必要的请求。 或者我应该专注于保护Nginx,因为这是第一个入口点。 所有的build议都欢迎。

NGINX:存储在数据库中的dynamic位置

是否有可能将数据库中的nginx位置存储而不是dynamic地为它们提供服务? 其任务是根据用户的IP和videoID为video文件创builddynamicURL。 这个想法是,当用户访问我的网站,这样一个dynamic的URL被创build,并添加到数据库作为一个新的nginx位置,只存在这个用户,而不是其他人。 或者nginx不适合我的任务,我需要使用另一个工具? 谢谢。