IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁服務(wù)器WEB服務(wù)器 → Nginx虛擬主機(jī)

Nginx虛擬主機(jī)

時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

我們先來看下nginx.conf

server
{
listen 80;
server_name  ygkjgt7.cn;
index index.html index.htm index.php;
root  /data/htdocs/ygkjgt7.cn/;

#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.downcc.com;
index index.html index.htm index.php;
root  /data/htdocs/www.downcc.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端口接受到訪問請(qǐng)求后,會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給9000端口的php-cgi進(jìn)行處理

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

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

首先,nginx.conf配置如下

server
{
listen 80;
server_name  ygkjgt7.cn;
index index.html index.htm index.php;
root  /data/htdocs/ygkjgt7.cn/;

#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.downcc.com;
index index.html index.htm index.php;
root  /data/htdocs/www.downcc.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;
}

}

注意:ygkjgt7.cn 的請(qǐng)求發(fā)送到9000端口 , www.downcc.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/ygkjgt7.cn.conf

#vi /usr/local/webserver/php/etc/ygkjgt7.cn.conf

找到php_defines,添加

<value name="open_basedir">/data/htdocs/ygkjgt7.cn:/tmp:/var/tmp</value>

 

B站點(diǎn)

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

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

找到php_defines,添加

<value name="open_basedir">/data/htdocs/www.downcc.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

 

注釋掉原來的 #php_fpm_BIN --fpm php_opts,田間

php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/ygkjgt7.cn.conf

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

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

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

查看端口

#netstat -tln

 

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

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

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

關(guān)鍵詞標(biāo)簽:Nginx,虛擬主機(jī)

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈IIS6.0下配置MySQL+PHP5+Zend+phpMyAdminIIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻win2000server IIS和tomcat5多站點(diǎn)配置win2000server IIS和tomcat5多站點(diǎn)配置

相關(guān)下載

人氣排行 XAMPP配置出現(xiàn)403錯(cuò)誤“Access forbidden!”的解決辦法WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置訪問網(wǎng)站403錯(cuò)誤 Forbidden解決方法Server Application Unavailable的解決辦法如何從最大用戶并發(fā)數(shù)推算出系統(tǒng)最大用戶數(shù)報(bào)錯(cuò)“HTTP/1.1 400 Bad Request”的處理方法http 500內(nèi)部服務(wù)器錯(cuò)誤的解決辦法(windows xp + IIS5.0)Windows Server 2003的Web接口