欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx虛擬主機(jī)防webshell完美版

 更新時(shí)間:2010年11月09日 22:29:52   作者:  
nginx虛擬主機(jī)防webshell完美版,使用nginx的朋友可以參考下。

我們先來(lái)看下nginx.conf

  server
  {
    listen       80;
    server_name  www.a.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.a.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

  server
  {
    listen       80;
    server_name  www.b.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.b.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

nginx在80端口接受到訪問(wèn)請(qǐng)求后,會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給9000端口的php-cgi進(jìn)行處理

而如果修改php.ini中open_basedir= ../../../../../ ,針對(duì)兩個(gè)不同的網(wǎng)站,www.a.com , www.b.com都會(huì)把請(qǐng)求發(fā)送給9000處理,而如果先訪問(wèn)www.a.com那么../../../../../就會(huì)變成A網(wǎng)站的根目錄地址,然后這時(shí)候如果你訪問(wèn)www.b.com,那么open_basedir仍然是A網(wǎng)站的根目錄,但是對(duì)于B來(lái)說(shuō),又是不允許訪問(wèn)的,所以就造成了,第二個(gè)站點(diǎn)打開(kāi)以后會(huì)出現(xiàn)no input files,那么有什么解決辦法呢?

我們可以把不同的虛擬主機(jī)發(fā)送到不同的php-cgi端口進(jìn)行處理,當(dāng)然響應(yīng)的php-fpm配置文件中的open_basedir也不同。。我們來(lái)看看怎么配置。。

首先,nginx.conf配置如下

 server
  {
    listen       80;
    server_name  www.a.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.a.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

  server
  {
    listen       80;
    server_name  www.b.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.b.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9001;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

注意:www.a.com 的請(qǐng)求發(fā)送到9000端口 , www.b.com的請(qǐng)求發(fā)送到9001端口,依次類推

nginx配置修改了,相對(duì)的,php-fpm.conf也要修改

每個(gè)站點(diǎn)建一個(gè)conf

 

A站點(diǎn)

#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/www.a.com.conf

#vi /usr/local/webserver/php/etc/www.a.com.conf

找到php_defines,添加

<value name="open_basedir">/data/htdocs/www.a.com:/tmp:/var/tmp</value>

 

 

 

B站點(diǎn)

#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/www.b.com.conf

#vi /usr/local/webserver/php/etc/www.b.com.conf

找到php_defines,添加

<value name="open_basedir">/data/htdocs/www.b.com:/tmp:/var/tmp</value>

 

找到listen_address,修改為

<value name="listen_address">127.0.0.1:9001</value>   注意這里的端口號(hào)

 

最后要修改php-fpm啟動(dòng)腳本

#vi /usr/local/webserver/php/sbin/php-fpm

注釋掉原來(lái)的 #$php_fpm_BIN --fpm $php_opts,添加

$php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/www.a.com.conf

$php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/www.b.com.conf

啟動(dòng)服務(wù)

#/usr/local/webserver/php/sbin/php-fpm restart

查看端口

#netstat -tln

 

開(kāi)了9000 9001分別處理兩個(gè)站點(diǎn)請(qǐng)求

兩個(gè)php-cgi主進(jìn)程加載不同的conf文件,這樣就完美解決了虛擬主機(jī)webshell能跨目錄的問(wèn)題

當(dāng)然,啟動(dòng)之前記得conf里面的max_children,開(kāi)啟php-cgi子進(jìn)程數(shù),相應(yīng)要減少一些,以免造成內(nèi)存不足

文章來(lái)源:DoDo's Blog
原文地址:http://www.sectop.com/post/35.html

相關(guān)文章

最新評(píng)論