Articles of nginx

如何解决nginx'没有input文件'时的path和权限是好的?

我知道这是一个常见的问题,但我没有发现与我的案例完全匹配的讨论。 nginx错误日志显示: 在stderr中发送FastCGI:“无法打开主脚本:/usr/share/nginx/drupal7/index.php 但: 这条路是正确的,这是我网站的根 www-data有权访问它(如果我做su www-data然后cat /usr/share/nginx/drupal7/index.php文件被显示)。 将nginx的根目录和fpm/pool.d/myserver.conf chroot都指向相同的文件夹: /usr/share/nginx/drupal7 www-data用户和组有660访问这个相同的文件夹到pool.d/myserver.conf ps -u www-data显示它拥有nginx和php5-fpm进程 我没有安装SElinux(有些讨论认为这可能是问题) 那为什么www-data用户可以访问我的index.php而不是FastCGI? 为什么FastCGI尝试正确的path,但是说它不存在?

Nginx不启动Passenger / Nodejs

我无法让Passenger在重新启动nginx时启动我的Nodejs(iojs)应用程序。 我已经按照教程安装了先决条件: $ nginx -V nginx版本:nginx / 1.8.0 configuration参数:–with-cc-opt =' – g -O2 -fstack-protector -param = ssp-buffer-size = 4 -Wformat ……… –add-module = / tmp / buildd / nginx-1.8 0.0 /的Debian /模块/乘客/ EXT / nginx的 在http块启用: passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /usr/bin/passenger_free_ruby; passenger_nodejs /usr/local/bin/node; passenger_default_user staging; passenger_default_group www-data; 然后在服务器块中: upstream instance { # point to node instance […]

匹配…用nginx重写规则中的字符

我有一个问题,有人添加了一个链接到我们的网站 – 但它被切断。 我在日志文件中看到: /info-cry%E2%80%A6 看到我知道那是什么意思,我试图在我的nginxconfiguration中为它创build一个重写规则。 我已经尝试了下面两个: rewrite ^/info-cry%E2%80%A6 https://example.com/info-cryptex-16gb-usb-drive-587.html permanent; rewrite ^/info-cry… https://example.com/info-cryptex-16gb-usb-drive-587.html permanent; ..但它永远不会匹配(只显示我们的自定义404页面)。 有什么办法可以做到这一点? 我真的想让它工作 – 因为我们得到了很多点击到破损的url

在每个后端使用单独的后端和多个域进行清漆

我正在使用3个具有多个域(站点)的nginx服务器。 每个服务器包含多个Wordpress网站。 可以configurationVarnish并使用单独的后端(不同的IP),每个后端都有多个域(站点)? 我已经尝试configurationVarnish并使用多个后端,但问题是Server-2和Server-3上的域(站点)路由不正确。 Frontpage显示,但子页面被路由到Server-1。 我正在使用Varnish 4和这个模板进行了一些修改。 https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl 不知道是否round_robin是正确的解决scheme,因为我认为这是同步服务器相同。 configurationVarnish 4并且只有1个后端服务器工作。 但是,多个后端服务器和域失败… 提前致谢!

在侦听端口443的nginx服务器块上禁用SSL

是否有可能设置一个服务器,而在端口443监听不使用它? 类似的东西: server { listen 443; server_name _; ssl off; return 444; } 上面代码的问题是,nginx在这个块上强制使用SSL(忽略ssl off ),并在失去证书时失败。 有些人可能会问为什么??,但请考虑这是我的学术问题:)

Nginx服务器FTP权限被拒绝

所以,这是我的问题。 由于Nginx设置在我的服务器上,我不断需要在ubuntu和nginx用户ID之间来回切换权限。 要使用WordPress进行更新,nginx需要拥有完整的权限。 对于FTP访问,ubuntu需要具有完全的权限。 当给予一个权限时,另一个停止工作。 所以我可以有FTP访问或有更新在WordPress的工作,而不是两个。 我已经尝试创build一个组,并为该组设置完整的权限,但无法使其工作。 nginx用户和ubuntu用户都在nginx组里,而nginx组似乎对主目录有权限(recursion的 – 至less我是这样认为的!) ls -l /var/www结果是: total 6104 -rw-r–r– 1 nginx nginx 418 Dec 19 2014 index.php -rw-r–r– 1 nginx nginx 6054753 Nov 20 2014 latest.tar.gz -rw-r–r– 1 nginx nginx 19930 Feb 19 2015 license.txt -rw-r–r– 1 nginx nginx 5633 Jul 14 11:43 nginx.conf -rw-r–r– 1 nginx nginx […]

nginx代理服务器上的CORS:跨域请求被阻止:同源策略不允许读取远程资源

我将我的API从一个子域移动到另一个,而不会影响已经运行的应用程序。 我在nginx上configuration了三个服务器,例如: 原始API服务器: server { listen 80; server_name example.com; root /var/www/example/; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; add_header 'Access-Control-Allow-Origin' '*'; location / { try_files $uri $uri/ /index.php?$args; } location ~*/api/([a-zA-Z0-9_]+) { proxy_pass http://127.0.0.1:4343/api/$1; proxy_read_timeout 60s; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header 'Access-Control-Allow-Origin' '*'; proxy_set_header 'Access-Control-Allow-Credentials' true; } … } […]

从另一个Docker容器重新加载nginx

我们有两个Docker容器: nginx的 领事模板 与nginx.conf共享卷。 挑战是当consul-template更新nginx.conf时,它需要通知nginx重新加载。 我不能找出一种方法(正确的方法?),使容器之间的这种进程间调用…如何调用nginx reload在nginx容器的上下文中,从一个兄弟容器?

Nginx反向代理向多个后端服务器发送相同的请求

我有NGINX作为反向代理和两个Apache作为上游服务器。 每当我访问example.com(定向到NGINX),两个Apache服务器都获得GET请求。 这似乎很奇怪,因为NGINX默认是基于循环方法的作品 这是我的configuration: upstream apache { server 172.18.0.164; server 172.18.8.18; } location / { proxy_pass http://apache; } loginApache 1机器: – 192.168.10.236 – – [05 / Oct / 2015:07:59:21 -0400]“GET / HTTP / 1.0”200 loginApache 2机器: – 172.18.8.97 – – [05 / Oct / 2015:11:59:27 +0000]“GET / wordpress / HTTP / 1.0”

Nginx的php-fpm会话不工作

我的PHP会话是: session.save_path = /var/lib/php/session 如果我做一个简单的脚本来testing像: session_start(); $_SESSION['hi'] = 1; var_dump($_SESSION); 那么会议不工作。 当我列出文件夹:“/ var / lib / php / session”我发现它每次都创build一个新文件。 所以,如果我重新加载页面1000,我将有1000个会话文件..它失去了会议,并创build一个新的。 所以它有权写入文件,但由于某种原因,它总是创build一个新的会话。