Articles of nginx

LXC和代理端口22(ssh)

我已经在我的Ubuntu 12.04服务器上安装了LXC,并创build了两个容器。 我只有一个外部IP地址,因此我在主机上使用nginx将来自某些主机的HTTP请求代理到相关容器。 我只是模糊地熟悉nginx和代理的概念,但从我的研究看来,我不能代理SSH。 因此我必须使用IP表进行端口转发。 这是不太理想的,因为我将不得不使用不同的端口SSH到不同的容器。 理想情况下,我想代理端口22在某些主机名到相关的容器,但我不明白这是如何可能的。 例如: ssh host1应该代理端口22上的容器“container1”。 ssh host2应该代理端口22上的容器“container2”。 这可能吗?

Nginx的手表脚本 – 与inotifywait问题没有看到变化

我使用Nick的优秀nginx-watch脚本来监视www root的nginx.conf文件,以便在它们更改后自动重新加载一些wordpress插件nginxconfiguration(BWPS和W3TC)。 我有这一切设置和工作,除非其中一个WordPress插件修改nginx.conf文件inotifywait没有看到更改,因此nginx不重新加载。 如果我手动编辑configuration文件,那么所有的工作都可以完美地按预期进行 我认为这是一个事实,这是PHP进程修改文件,但我不知道为什么inotifywait不会看到这些变化。 有没有人有任何想法可能是什么问题?

nginx重写或内部redirect,主脚本未知

我正在从Apache转换为Nginx。 有关的应用程序如下 / contentlibrary_js /contentlibrary_js/app/index.php – >一页ajax应用程序/contentlibrary_js/pagecreator/index.php – > codeigniter应用程序后端 我希望有一个服务器块处理请求到前端和请求到后端。 通过以下configuration,我在nginx错误日志中收到“重写或内部redirect周期,同时在内部redirect到”/index.php“。 我试图添加第二个位置块来处理对pagecreator / index.php文件的请求,但是我然后应用程序挂起等待响应,并且在读取来自上游的响应标头时,我得到“在stderr中发送的FastCGI:”主脚本未知“在错误日志中。 任何build议,谢谢 server { server_name contentlib.dev; #access_log logs/leonardo.access.log main; root /Users/acasanova/projects/mednet/contentlibrary_js; index index.html index.htm index.php; try_files $uri $uri/ /pagecreator/index.php /index.php /index.php$uri /index.php?$args; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # Codeigniter # location /pagecreator/{ # try_files $uri […]

无法将Ruby 2,Rails 4应用程序部署到Linode

我有一个Rails 4应用程序,我想部署到我的Linode,我很努力得到这个工作。 我遵循了Linode指南中的所有基本说明,还安装了我的应用程序的所有依赖项,configuration了数据库,创build了部署者用户,并执行了Linode指南所build议的所有configuration。 我甚至安装了Postgres并设置了我的用户和BD。 此外,我已经解决了我的应用程序的所有依赖关系(Ruby或不),所有的Ruby依赖关系通过Bundler解决。 我尝试了一切基于这个截屏http://railscasts.com/episodes/335-deploying-to-a-vps 。 我有,也指出我的域名地址的机器,但应用程序本身没有路由到这个地址,我真的需要它,因为客户希望看到页面在生产ASAP。 当我作为部署者(非pipe理员)用户login到我的Linode并运行ls命令时,它返回给我这个: apps database.yml public 在public我有: example.com somosprofessores.org 它们对应着我的Linode和我的应用程序自带的Rails应用程序根目录下的基本示例应用程序。 不幸的是,Linode的支持不能帮助我,而Rails的部署指南是非常不完整的,我真的需要做到这一点。 请帮帮我。 技术规格: Ubuntu 13.10 Ruby 2.0 Rails 4 PostgreSQL 9.1 Nginx

将所有urlredirect到一个url

我有一台机器foo00 CNAME是foo 。 有了nginx我可以从以下url访问我的网站: foo/ foo00/ foo.domain.local/ foo00.domain.local/ 我怎样才能configurationnginx使所有的redirectfoo.domain.local ? 我尝试了以下内容: server { listen 80; server_name foo.domain.local; return 301 $scheme://$host$request_uri; } 这将foo/redirect到foo.domain.local/而不是foo00/或foo00.domain.local 。 有任何想法吗?

根据主机名阻止请求

有没有人在他们的Nginx设置中使用这个模块? 如果是的话,我想知道它的performance。 多less会影响响应时间等 https://github.com/flant/nginx-http-rdns 在处理请求之前,模块基本上会进行反向dns查找以获取主机名。 请让我知道,如果你需要任何其他信息。 编辑:@Kromey,@MichaelHampton,谢谢你的回复。 这是问题的原因: 场景: 我有一个网站,其中包含几个表单。 无论何时填写表格,我都会收到一封包含表格详细信息的邮件。 问题: 过去几天,有人通过机器人提交表格。 我每天收到几千封邮件。 所有的邮件都经过这个主机: 205.47.89.110.broad.pt.fj.dynamic.163data.com.cn。 在开始的IP不断变化,但是,之后的主机名是一样的(我做了主机名ips上的nslookup)。 正如你所猜测的那样,我对此并不高兴。 我看过的解决scheme: validation码 – 不想执行此操作,因为它基本上是为用户额外的工作 隐藏字段 – 包含一个普通用户看不到的隐藏字段。 由于bot通常填写表单中的所有字段,所以我可以检查这个字段是否填充,如果字段包含任何值,则拒绝详细信息。请参阅下一个要点,我不想实现这一点。 测量用户开始填写表格的时间点和用户提交表格的时间点之间的时间。 由于机器人真的很快这样做,拒绝请求,如果测量时间低于一定的阈值 – 我想在用户访问表单之前拒绝请求。 也就是说,在Nginx层本身。 基本上,我试图最小化服务器上​​的带宽和资源消耗。 所以,我所倾向的解决scheme是基于主机名来阻塞。 随意说服我,否则。 我很乐意提供build议。 谢谢

NGINX:将自定义端口上的呼叫路由到本地主机到外部服务器

我的导轨应用程序有问题。 该应用程序的API是在端口8082上的本地主机上查找我的论坛(forum.example.com)。 我需要创build一个路线,redirect每个连接到forum.example.com 127.0.0.1:8082 用nginx可以得到这样的东西吗?

服务器更新到php 5.5.0后停止工作

我正在运行nginx在Ubuntu的服务器12.04,我刚刚更新到最新的php包如下http://phpave.com/upgrade-php-5-3-php-5-5-ubuntu-12-04-lts /#.Uzsho1RdURg 。 在安装的最后一部分,我被问到是否想replaceconf文件,因为服务器上的文件与原始文件不同,我同意这一点。 不幸的是,我找不到服务器中的conf文件,所以我想知道在哪里可以检查它,因为问题必须在其中。 我试图用nginx 服务php5-fpm restart ,但是失败了,并且返回了以下消息 拒绝发送消息,1条匹配规则; type =“method_call”,sender =“:1.17”(uid = 1000 pid = 8013 comm =“stop php5-fpm”)interface =“com.ubuntu.Upstart0_6.Job”member =“Stop”error name =“(unset )“requested_reply =”0“destination =”com.ubuntu.Upstart“(uid = 0 pid = 1 comm =”/ sbin / init“) 每当我加载服务器,我得到一个502 坏的网关 。 我如何检查它有什么问题?

无法在configuration脚本中从源代码安装nginx

我正在使用Vagrant为我的一个项目构build可重复的虚拟机。 这个虚拟机需要一个基本的LEMP堆栈,并且在创build之后使用一个shell脚本来configuration它。 我遇到麻烦的部分是从源安装nginx。 configuration脚本如下所示: #!/bin/bash # nginx settings NGINX_VERSION=1.4.7 NGINX_SOURCE=http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz echo "==> Installing required packages and upgrading" apt-get -u update apt-get install make echo "==> Checking if nginx is installed" if [ ! -e /opt/nginx-$NGINX_VERSION ] then echo "==> nginx not installed, installing nginx $NGINX_VERSION" # Download nginx to /usr/src and cd into the extracted […]

把一个目录的nginx规则重写到另一个域/子域

我已经设置了下面的nginx重写规则。 但似乎没有工作, * location /images { rewrite ^(.*)$1 http://sub.domain.com/$1 permanent; } * 为图像我试图redirect到另一个域。 我怎么能做这个工作?