Articles of nginx

为Nginx安装Mod_Security,无需重新编译

我有LEMP所有设置。 现在我想添加mod_security 。 我试图研究,但我能find的是如何重新编译nginx的说明。 有没有办法添加mod_security而不需要重新编译? 我目前正在运行安装了PPA的nginx / 1.9.15,因为我是在HTTP / 2之后的。 我没有在编译nginx的经验,我不知道是否我重新编译我会打破nginx,因为我从PPA得到它。 希望你能帮忙。 谢谢。

NGINX访问错误path中的文件

我有一个codeigniter应用程序具有以下目录结构 <HOME> |_ <web> | |_<API> | |_index.php |_<admin> 开发人员在目录中有一个index.html。 codeigniter文件和开发人员推出的服务都在目录中。 开发人员通过将服务名称附加到域来访问服务,如下所示:http://mydomain/web/API/index.php/v1/GetRoles主机名在JavaScript文件中被configuration为BASE PATHvariables。 这个程序是由运行fast-CGI的NGINX服务的。 虽然HTML页面被加载,但是没有数据被获取。 所以我们试图通过在浏览器中inputURL( http://mydomain/web/API/index.php/v1/GetRoles )来访问这些函数。 我们得到一个404 Not Found错误。 错误日志包含以下条目 2016/05/20 16:14:57 [error] 2127#0: *232 FastCGI sent in stderr: "Unable to open primary script: /home/myname/public_html/domainname/public/projectname/index.php (No such file or directory)" while reading response header from upstream, client: 14.141.163.46, server: mydomain.com, request: "GET /web/API/v1/get/Common/GetActivities […]

Django uwsgi部署。 无法find“应用程序”

启动uwsgi时有问题: unable to find "application" callable in file dashboard/wsgi.py unable to load app 0 (mountpoint='') (callable not found or import error) uwsgi.ini: [uwsgi] socket = /tmp/dashboard.sock chdir = /srv/http/depo-dashboard/ wsgi-file = dashboard/wsgi.py callable = app processes = 4 threads = 2 chmod-socket = 666 wsgi.py: import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard.settings") application = […]

NGINX密码保护的一切,但一个端点

AWS上有两个EC2实例。 我使用NGINX 1.6。 这两个实例都连接到AWS负载平衡器。 为了将这些实例视为“正在运行”,负载均衡向两台服务器发送了一个HTTP请求,期望结果为200(OK)。 现在,我想密码保护两个实例的Web访问。 为此,我在NGINXconfiguration中使用了这些: auth_basic "Restricted"; auth_basic_user_file /var/www/mywebapp/public/.htpasswd 问题是,没有办法告诉AWS的凭据,一旦你启用密码保护,这两个实例几乎立即被认为outOfService ,不再解决。 我想在NGINXconfiguration中定义一个端点,说/heartbeat将提供一个文件,在我的公共文件夹中说itsok.html文件,而不需要进行凭证检查,同时保持所有其他端点的密码保护我的networking应用程序 到目前为止,我所有的尝试都失败了。 我如何做到这一点? 这是我目前的NGINXconfiguration文件: # Default server configuration # server { # Useful logs for debug. access_log /var/www/laravel/access.log; error_log /var/www/laravel/error.log; rewrite_log on; listen 80; server_name mywebapp.com; root "/var/www/mywebapp/public"; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location = […]

nginx:在stderr中发送的FastCGI:“主脚本未知”

在64位的arch linux上使用最新版本的nginx(1.10.0)和php-fpm(PHP 7.0.6)。 当试图请求index.php DokuWiki安装,我得到以下错误: 2016/05/21 22:09:50 [error] 11099#11099: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.70.3, server: doku.test.com, request: "GET /install.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "doku.test.com" 这里是相关的服务器configuration: server { listen 80; server_name doku.test.com; root /var/www/doku/public_html/; access_log /var/log/nginx/scripts.log scripts; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; […]

如何loggingTLS相互validation细节?

是否有办法loggingTLS相互authenticationstream程的底层细节(最重要的是 – 发送给客户端和签名响应的挑战)。 任何工具的解决scheme都是值得欢迎的:nginx,Apache(mod_proxy),HAProxy等

configurationnginx反向代理发送TCP保活数据包给服务器

负载平衡器后面的Azure中有IIS服务器。 负载平衡器具有4分钟的不可configuration超时,在此之后,非活动连接被终止。 我们正在尝试将nginx设置为上述IIS群集的反向代理。 一切正常,除了nginx不发送保持活动消息到它打开连接到服务器。 所以,如果服务器花费4分钟以上的时间来回复连接,那么负载均衡器将会终止这个连接。 如果一个客户端(浏览器)直接连接到负载均衡器,它会发送TCP保持活动的消息,并且都是好的。 如果客户端连接到nginx,它发送保持活动到nginx和所有连接到nginx好。 但是在nginx和负载平衡器之间没有保持活着的消息,所以最终连接死亡。 so_keepalive选项似乎与从客户端(浏览器)打开到nginx的连接的TCP保持连接有关。 我们尝试了其他反向代理(IIS ARR代理,haproxy),并且总是遇到同样的问题。 我们不能configuration负载均衡器(在我们的控制之外)。 我们怎么能configurationnginx,nginx或负载均衡器后面的IIS(nginx连接到哪一个)让他们发送保持活动的消息,以保持连接打开?

如果传递了某个参数,nginxclosuresauth_basic的位置

有URL /index.php 。 访问它应该是受限制的,如果它的参数'foo'被设置为'bar',即/index.php应该被任何人自由地打开,并且打开/index.php?foo=bar只能在基本的授权。 我知道if指令, location = index.php { if ($arg_foo ~ bar) { auth_basic ""; auth_basic_user_file myauth; } fastcgi_pass unix:/var/run/php-fpm.socket; } …但是if不允许将auth_basic放在if子句中, if是一个单独的location 。 所以我认为应该有一种rewrite到另一个位置,可能会传递一个包含我们想要访问的原始位置的头文件,检查头文件并在通过身份validation之后重写到该位置,但是这看起来像是太多了一个黑客,可能会做得更容易,但我不知道如何。

nginx SSL终止与粘性负载平衡

我想在负载均衡器中使用带有TLS / SSL终止的socket.io应用程序的Nginx。 是否有可能使用ip_hash指令与TLS / SSL终止结合进行粘性负载ip_hash ? 我的应用程序只使用HTTPS。 我找不到任何资源,除了这篇文章 ,说粘滞负载平衡不适用于TLS / SSL,我很困惑! 文章引用: IP Hash(仅适用于HTTP)是Hash方法的预定义变体,其中哈希基于客户端的IP地址。 你用ip_hash指令来设置它。

Nginx:连接()到xxx.xxx.xxx.184:3000失败(22:无效参数),当连接到上游时,

这是我第一次问serverfault问题。 如果我错过了什么,请让我知道! 我一直在试图解决这个问题两天了。 还是找不到解决办法。 这是我的场景: 服务器A 节点应用程序A在端口3000上 Nginx在80端口 当我去/hello ,应用程序B应该从服务器B服务 服务器B 节点应用程序B在端口3000上 当我访问/hello ,我得到502 Bad Gateway 。 在我的错误日志中,我看到这个: connect() to 162.243.104.184:3000 failed (22: Invalid argument) while connecting to upstream, client: 75.72.170.8, server: 107.170.64.149, request: "GET /hello/ HTTP/1.1", upstream: "http://162.243.104.184:3000/hello/", host: "107.170.64.149" 这是我的服务器A的nginx conf: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name 107.170.64.149; location […]