Articles of nginx

NGINXpowershell检测隐藏在NAT后面的设备。 只阻止特定的设备,而不是所有设备共享相同的IP

我有一个AWS EC2 Ubuntu实例,NGINX服务器configuration为侦听端口80上的IP地址50.0.0.1(示例)。 我在index.php有一个login页面。 我想configurationnginx的蛮力检测和预防(主动阻塞)这个页面。 但是,如果一个客户端节点隐藏在我的体系结构: 体系结构中 ,那么根据我的简单脚本(在5次尝试失败后阻止IP地址),它将阻止IP 1.2.3.4(参考体系结构 ),以便其他合法用户与攻击者共享IP 1.2.3.4也会被阻止。 有什么办法可以阻止攻击者的请求,而不是其他合法的请求? 一些解决scheme想到的是: 阻止IP-SourcePort组合而不是仅阻止IP,但是攻击者可以为每个请求随机化源端口。 实现STUN服务器或TURN服务器 什么是最好的解决scheme来实现这一目标?

Nginx的conf文件位置和重写不起作用

我在nginx上运行magento。 我的根是/pub 但有一些扩展试图链接到www.myurl.com/pub/xxx.file ,所以我想要将所有/pub改写为/ 我的计划是www.myurl.com/pub/xxx.file成为www.myurl.com/xxx.file ,但它不起作用。 这里是我的conf文件( abcdefg是一个testing目录): server { listen 443 ssl http2; server_name www.myurl.com ; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/www.myurl.com/pub; ssl on; ssl_certificate /etc/letsencrypt/live/www.myurl.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.myurl.com/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "myciphers"; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem; location /pub { rewrite /pub /; } location […]

为什么Nginx在不存在的子域中调用无效证书只是为了redirect到404?

有两个服务器块。 nginx.conf http块中的default_server块: 服务器{ 服务器名称 _; 听80 default_server; 听[::]:80 default_server ipv6only = on; listen 443 default_server; 返回404; } include / etc / nginx / sites-enabled / *; sites-enabled网站的工作域/网站块: 服务器{ 听80; 听443; server_name example.com; 返回301 https://www.$server_name$request_uri; } 服务器{ 听80; 听443 ssl; root /var/www/example.com/htdocs/; index index.html index.htm; server_name www.example.com; } (我有这个设置redirect所有非www到www和所有http到https) 我有一个非www和www我的域的证书。 Nginx出于某种原因正在调用任何子域名,而不是给默认的网站无法find/ ERR_CONNECTION_RESET/错误。 例如,如果我去https://asdf.example.com/ Nginx调用它,浏览器告诉你它是不安全的SSL证书,那么你无论如何接受它,并得到一个404页面。 如何跳转到404页面跳过无效的证书消息,或者如何直接跳转到“页面未find”而不是404? […]

nginx不会将httpredirect到https

我有一个nginx docker,运行着多个 site-config文件。 其中之一就是所有http连接的一般redirecthttps: server { listen 80; server_name *.example.com example.com; return 301 https://$host$request_uri; } 所有其他的site-config文件是为我的其他docker/服务如Nextcloud和Plex。 每当我把例如https://plex.example.cominput到我select的浏览器(甚至是IE)中时,它都会显示正确的网页,并显示一个ssh-connection。 但是,inputhttp://plex.example.com只会返回一个空白页面,在这种情况下不会将我redirect到Plex。 任何人有一个想法? PS:默认的site-config文件是空的。 但是由于这样的事实,所有的服务/docker工人的site-configs工作,我猜测,redirect在一个额外的文件不会是问题。 PPS:这是一个访问日志的例子。 错误日志是空的(超过3个月没有新的条目)。 日志是通过https访问我的plex服务器。 通过http访问任何内容都不会创build日志条目。 192.168.0.2 – – [13/Nov/2017:21:53:02 +0100] "GET / HTTP/1.1" 401 157 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 192.168.0.2 – – [13/Nov/2017:21:53:02 +0100] "GET /web/index.html HTTP/1.1" 200 1650 […]

尝试删除Apache上的“在响应头中发送X-powered头文件”

我正在努力解决上述在SEO中出现的问题。 以下解决scheme是build议的解决scheme: <IfModule mod_headers.c> # Unset Server Signature header ServerSignature Off # Unset Server Technology header Header unset X-Powered-By </IfModule> <IfModule mod_headers.c> # Set XSS Protection header Header set X-XSS-Protection "1; mode=block" </IfModule> 我已经把这个放在“附加的Apache指令”中,但是无济于事。 我的服务器托pipe公司似乎无法提供帮助。 我没有得到任何语法错误。 这似乎并没有工作。 我在CentOS Linux 7.4.1708(Core)上运行Plesk 12.5.30 Update#71。 Apache和nginx。 任何帮助,将不胜感激,因为我现在正撕裂我的头发!

如何在nginx中重写查询string规则htaccess?

我有这个htaccess: <IfModule mod_rewrite.c> RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php?%{QUERY_STRING} [L] </IfModule> 转换成nginx规则。 问题是最后一行。 这是我目前的一个: set $condition ""; if (!-f $request_filename) { set $condition F; } if (!-d $request_filename) { set $condition "${condition}D"; } if ($condition = FD) { rewrite ^(.*) $host/index.php?$query_string last; } 我怎样才能做这个工作? 谢谢。

Nginx – 使用身份validation向IIS6反向代理

为了testing目的,我已经为IIS6服务器设置了一个nginx反向代理,这工作正常。 但是,当我尝试在IIS6网站上使用“Windows身份validation”,浏览器身份validationinput不会在那里。 经过一番阅读,我发现明显的:) nginx不支持HTTP / 1.1的反向代理呢! 我的问题:有没有人知道这种types的请求“解决方法”? 谢谢

PHP的快速CGI(与NGINX一起使用)冻结暂停

我为web开发build立了一个非常小的本地networking。 networking服务器是一堆 MySql 5.1.37 NGINX 0.8.19 带有Suhosin-Patch 0.9.7和Xdebug v2.0.4的PHP 5.2.10 服务器本身运行Ubuntu的业力9.10。 为了向NGINX提供PHP,我使用下面的命令: sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid 我的问题是,每天早上,当机器从挂起状态恢复时,PHP已经停止工作(在浏览器NGINX尝试加载请求的页面几秒钟后显示“坏的网关”消息)。 如果我尝试重新启动重新生成PHP的命令,它给了我错误,说该地址已被使用。 编辑:更多信息 产卵后,如果我运行ps ax | grep php ps ax | grep php我得到一个php-cgi进程运行,而如果我从暂停恢复后重新发出命令,我什么也没有得到,虽然地址仍然会导致“使用”,如果我尝试重新产卵。 我脑海中浮现的想法是,php-cgi注册了一些其他的进程,并没有检测到与暂停的突然死亡php-cgi,保持地址繁忙。 是真的吗?! 任何想法如何解决这个问题? 一个优雅的解决scheme是最受欢迎的,但即使是一个肮脏的解决方法,使服务器可以自我恢复而无需人工干预是可以的。 这只是几个人使用的内部生产服务器。 预先感谢您的时间!

apache / nginx html文件大小限制

在向用户浏览器提供/发送HTML文件时,我可以在哪里重新configuration此大小限制? 我想通过apache和nginx发送一个非常大的html文件给用户。 文件被截断在apache / nginx中,什么设置决定文件大小?

在一个使用nginx子目录的CakePHP(重写规则?)

我设法得到这个工作了一段时间,但返回到CakePHP项目,我已经开始看起来,无论我最近对Nginx(或者最近的更新)所做的任何更改已经打破了我的重写规则。 目前我有: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.php index.html index.htm; } location /basic_cake/ { index index.php; if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/basic_cake/(.+)$ /basic_cake/index.php?url=$1 last; break; […]