Articles of nginx

使用iptables打开fastcgi端口的正确方法

我使用nginx和fastcgi运行服务器。 我正在使用TCP套接字的fastcgi而不是Unix套接字,因为我已经读过,这个规模更好。 fastcgi服务器在fastcgi://127.0.0.1:9000上运行。 我试图找出我需要添加到iptables允许stream量通过什么规则。 我已经想清楚了这一点: -A INPUT -p tcp -m tcp -d 127.0.0.1 –dport 8999 -m state –state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp -s 127.0.0.1 –sport 8999 -m state –state NEW,ESTABLISHED -j ACCEPT 但是我在猜测,我也应该为INPUT规则指定一个源端口和源IP,为OUTPUT规则指定一个目标端口和目标IP(为了安全起见)。 那正确的价值是什么? 我希望我的问题是有道理的。

nginx – 为什么我不能直接访问我的错误页面?

我有一个使用proxy_pass转发请求的NodeJS应用程序。 当NodeJS应用程序closures时,我想显示一个自定义的错误页面。 所以我把一个5xx.html文件放到/var/www/some-folder/errors并将错误转发给它。 现在当我尝试访问http://some.address.com而NodeJS服务器closures时,会引发502错误,nginx会正确返回5xx.html页面。 现在根据nginx.conf (见下面),我假设如果我请求http://some.address.com/errors/5xx.html ,它通过location ^~ /errors/指令转发到/var/www/some-folder ,然后到/errors/5xx.html 。 但不是获取5xx.html页面,我得到默认的nginx 404 Not Found页面。 为什么我不能直接访问5xx.html页面? 谢谢。 nginx.conf server { server_name some.address.com; location / { // some settings proxy_pass http://127.0.0.1:8084/; } location ^~ /errors/ { internal; root /var/www/some-folder; } error_page 502 503 504 505 /errors/5xx.html; }

nginx作为Apache前面的反向代理 – 保护和安全

我只关心是否单独安装Nginx WS,或者在安全和保护的基础上在Apache之前安装nginx作为反向代理。 如果我不得不selectnginx作为Apache前面的反向代理,那么这个保护和安全性是否会应用到这两个服务器? 这意味着我必须为每个安装一个安全应用程序,例如Apache的mod_security和Nginx的mod_security,以及两个服务器的Fail2bn … 任何人都可以在这里启发我,所以我可以了解如何安全应该做? 任何意见是赞赏!

Nginx允许直接访问图像

我想在http://myweb.com/img/someimage.jpg中将/var/files中的/var/files暴露给用户,但也禁止访问非图像文件。 这就是我想要做的,但是不行,你能帮我吗? location /img/*\.(jpg|jpeg|gif|png|bmp|ico) { alias /var/files; }

Icinga向浏览器显示二进制输出

不能告诉如果这是Icinga或Nginx,但当我拉起Icinga经典网站,我得到的二进制CGI显示在屏幕上。 这里有一个截图: 它似乎是来自“tag.cgi”的二进制数据。 这是我的nginxconfiguration: # Icinga ——————————————————— location /icinga/ { alias /usr/share/webapps/icinga/; auth_basic "Icinga Access"; auth_basic_user_file /etc/icinga/htpasswd.users; } location ~ ^/icinga/(.*)\.cgi$ { root /usr/share/webapps/; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; include fastcgi.conf; fastcgi_param AUTH_USER $remote_user; fastcgi_param REMOTE_USER $remote_user; # rewrite ^/icinga/cgi-bin/(.*)\.cgi /$1.cgi break; include /etc/nginx/fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; auth_basic "Icinga Access"; auth_basic_user_file /etc/icinga/htpasswd.users; } 有什么想法发生了什么?

Nginx SSL终止 – 如何encryption数据到客户端?

我已经设置了一个Nginx作为一个HTTP负载平衡器与Apache Web服务器SSL / TLS终止。 我的问题是通过使用Nginx来终止ssl,我该如何encryption数据回浏览器/客户端。 每个apache服务器都必须configuration为执行SSL还是从apache发回的数据encryption到Nginx? 我想限制在Apache Web服务器上的CPU资源。 感谢在这个问题上的任何帮助。 PS:我正在使用X-Forwarded-For在我的Nginxconfiguration。 这是否将浏览器的证书发送到Apache服务器?

如何使用nginx重写规则去除hypen( – )?

我正在使用这个重写规则redirect example.com/abc?id=learn-more —-> http://example.com/abc?id=learnmore rewrite ^/abc?id=learn-More http://example.com/abc?id=learnMore permanent 但它不工作! 它正在redirect到 example.com/abc?id=learn-more(learn-more不会转换为learnmore)。 如何做到这一点?

找不到nginx重写位置

在Nginxconfiguration文件中,没有设置像下面的重写位置,但不工作,每次返回404没有find,这里有什么问题? server { listen 80; server_name mydomain.com www.mydomain.com; root /var/www/html/mydomain.com; . . . location /postfixadmin { root /var/www/html/postfixadmin/; index index.php index.html index.htm; location ~ ^/postfixadmin/(.+\.php)$ { try_files $uri $uri/ =404; root /var/www/html/postfixadmin/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* […]

在Nginx重写规则中匹配%ff

我有一些可疑的请求进入我的服务器,包含%ff和%FF (例如, /blog/%ffupdates/ 。我每天得到数以千计,并希望开始redirect到403.我目前有一个端点我用这个黑洞这样的事情,并想重写这些URL指向该端点。 目前,我正在尝试: rewrite ^/.*?%ff.*?$ https://domain.com/forbidden permanent; 我完全明白,这可能太过于贪婪的比赛; 不过,我只是想尽一切办法来开始工作。 现在,当我尝试这一点,并查看debugging日志,好像%ff被转换为 (是的,这应该是问号钻石thingy)。 例如,在日志中有这样的事情: *4 "^/.*?%ff.*?$" does not match "/blog/ updates/" 看来,因为%ff被转换,我实际上不能匹配string。 我使用SSL和SPDY运行Nginx 1.7.1。 有什么想法吗?

Fastcgi请求logging太大

我正在运行一个Nginx服务器,它要求我接受包含高达4mb数据的URIstring。 我已经configurationnginx通过设置接受参数: /etc/nginx/nginx.conf large_client_header_buffers 18 2048k; client_header_buffer_size 10m; 服务器现在接受请求,但会引发内部错误500 。 看在site-error.log ,这是我得到: 1 fastcgi request record is too big: 2425046 看着这个请求,这个数据被削减到了大约4K。 是否有可能接受这么大的请求,以及如何?