Articles of nginx

NGINX One Domain – 内部IP的几个networking服务器

我有一个案例,我不知道如何pipe理,并希望得到一些build议。 当前: 一个域名 – 一个外部IP。 一个已经在使用NGINX的Debian服务器来托pipe网页。 So, as it is now, I have *.domain.com pointing to server.internal.ip. Internal IP is on a 192.168.1.x/24 network and all works just as intended. 新案例: 我被要求创buildCNAME的域名,即 cname1.domain.com cname2.domain.com cname3.domain.com 等等。 我现在需要做的是将相应的cname指向相应的服务器,即 cname1.domain.com to server1.internal.ip cname2.domain.com to server2.internal.ip .. cname9.domain.com to server9.internal.ip 我仍然需要确保所有不属于CNAME的其他请求(即* .domain.com)都属于原始的server.internal.ip。 我没有得到更多的外部IP号码,我已经使用我所拥有的。 NGINX怎么样? 我假设我需要设置已经工作的server.internal.ipredirect端口80上的请求基于cname到相应的新的内部服务器? 我今天使用的路由器配有DD-WRT。 任何提示/指向一个HOWTO,我没有设法find将不胜感激。

百度在nginx access.log

当我检查我的nginx的access.log我检测到一些未知的条目。 这是一个这样的条目的例子: 119.96.41.183 – – [14/Aug/2013:07:56:51 +0200] "GET http://www.baidu.com/ HTTP/1.1" 302 160 "http://www.baidu.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2$ 219.154.5.176 – – [14/Aug/2013:10:48:38 +0200] "GET http://www.baidu.com/ HTTP/1.1" 302 160 "http://www.baidu.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2$ 还有其他一些我不知道我是否应该担心的参赛作品: 91.121.123.161 – – [11/Aug/2013:09:33:58 +0200] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%$ 我在Debian上运行了php5-fpm,运行nginx 1.4.1。 作为控制面板,我在端口8080上使用ISPConfig(默认)。 […]

nginx上游服务器path“backend.example.com/serverfiles/”?

我想知道如何定义上游目录path,而不是子域或端口的服务器值… 例如这不会工作: upstream backend { server backend1.example.com/**dir/** ; server backend2.example.com:8080; } server { location / { proxy_pass http://backend; } } 有没有人有线索我怎么能这样做? 最好的祝福。

反向HTTP代理作为CDN原始服务器,如何处理上次修改以来的?

我正在尝试为CDN设置冗余的原始服务器,以便按需提供video文件。 目前的设置是,我有两个“媒体”服务器具有较大的存储容量,并运行nginx。 在这两台服务器的前面是另一个nginx服务器,它被设置为一个反向代理,将请求分解到每个服务器。 每个媒体服务器上存储了每个video的副本。 它们被复制到每个媒体服务器,但可能稍有不同。 因此,nginx会为video请求返回略微不同的LastModified标题,具体取决于nginx服务器提供的服务。 问题是,caching数据的CDN有时会向源服务器发送IMS(If Modified Since)请求,并使用该信息来确定是否需要刷新其caching中的video。 CDN为video提供字节范围请求,这些请求可以在两台服务器之间轻松拆分。 如果字节范围请求继续得到不同的最后修改标题,一切都搞砸了。 这是一个可解决的问题? 我是否需要使用其他一些机制来保持两台服务器之间的数据“同步”? 也许我可以使用rsync将数据从一个存储服务器复制到另一个存储服务器,并传入一个保留所有创build/修改时间的选项?

如何解决WP-DBManager权限问题?

我在一个由CentOS 6.4支持的LEMP堆栈上安装了WordPress。 我今天安装了WP-DBManager插件,它显示了下面提到的错误: Your backup folder MIGHT be visible to the public To correct this issue, move the .htaccess file from wp-content/plugins/wp-dbmanager to /var/www/example.com/public_html/wp-content/backup-db 但是,我们怎么能做到这一点,因为Nginx不支持.htaccess文件。 请告诉我什么权限,我应该给位于wp-content文件夹中的backup-db文件夹。 该文件夹中的.htaccess文件包含以下代码: <Files ~ ".*\..*"> order allow,deny deny from all </Files> 这时候我直接打开那个“backup-db”文件夹,ngnix显示403 Forbidden错误。 但是,如果有人直接链接到位于该文件夹中的备份zip文件,则可以轻松地下载备份。 请帮帮我!

nginx:将子域重写为不redirect的子目录

我想让nginx重写任何http://api.example.org/xyz请求,在幕后调用example.org/api/xyz 。 棘手的部分是我使用的是CodeIgniter,而不是在/xyz/index.php中加载一个php脚本,我需要它用XYZ控制器引用CodeIgniter的/index.php。 现在我把它设置成这样: if ($host = "api.example.org") { rewrite ^(.*)$ http://example.org/api$1 permanent; } …但是会导致浏览器中出现明显的redirect。 我想重写是无缝的/在幕后发生。 所以我试了一下: if ($host = "api.example.org") { rewrite ^(.*)$ /api$1 last; } 但是,这给了我一个“没有input文件指定”的错误。 :(有没有人尝试在nginx之前重写一个子域到codeigniter控制器? 谢谢!

PHP网关超时

我需要更长时间执行PHP,而其他任何事情都可能成为问题。 我以为我已经这样做了,但我仍然从我最近的wordpress安装获取网关超时。 php-fpm池具有以下configuration [john] user = john group = john listen = 127.0.0.1:9002 listen.owner = www listen.group = www pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 php_admin_value[max_execution_time] = 300 php_admin_value[max_input_time] = 120 语法是好的,但脚本超时约30秒,我不知道还有什么我错过了。 这可能是矫枉过正,但我​​很匆忙,会后来学习,随意解释,但如果有人能告诉我所有的价值,我可以增加,用暴力来解决这个问题,并解决这将是伟大的。

nginx basic_auth豁免问题

我试图从basic_auth免除一个位置,而网站的其他部分确实需要它。 阅读它我的configuration应该工作,但由于某种原因,它仍然返回401 / asd / qwe /。 server { server_name domain.com www.domain.com; root /var/www/domains/domain.com/htdocs/public; index index.php index.htm; location / { location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/domains/domain.com/htdocs/public$fastcgi_script_name; } auth_basic "Restricted"; auth_basic_user_file /var/www/domains/htpasswd/domain.com.htpasswd; } location /asd/qwe/ { auth_basic off; allow all; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock; fastcgi_index […]

nginx +正则expression式,删除除最后一个URI的所有部分

像一个URI /一个部分/一些部位/另一部分/后部分/?some_param = SOME_VALUE 我怎么去除一切到最后一部分的参数,并最终重写它看起来像 /index.php?id=last-part&some_param=some_value ?。 我尝试了各种各样的魔法,但最接近的是去除了问号。

未findPHP5-FPM / var / run / php5-fpm /目录

今天,我重新启动我的服务器和PHP5-FPM由于/var/run/php5-fpm/找不到启动失败。 /var/run/在重新启动时被清除,大多数服务在重新启动时重新创build它们的/var/run/目录。 我总是假设PHP5-FPM在重启时自动创build了/ var / run / php5-fpm /并且之前的重启没有问题。 PHP5-FPM是否停止在更新中创build目录,或者从来没有创build目录? 我今天之前的最后一次重新启动已经超过了30天,而且我不需要手动创build/ var / run / php5-fpm /目录来进行重启。 我是否需要将mkdir添加到我的init.d文件中以获得php5-fpm,或者还有其他build议的方法吗? 另外,为什么这个“目录未find”的错误不会发生之前呢? 其他信息: 服务器运行Debian 7(Wheezy),Nginx和MySQL。 /var/run链接到/run/ 。 /run/具有755的权限,由root拥有。 谢谢。 /etc/init.d/内容中的PHP5-FPM文件 #!/bin/sh ### BEGIN INIT INFO # Provides: php-fpm php5-fpm # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 […]