nginx虛拟主機防webshell完美版,使用nginx的朋友(yǒu)可(kě)以參考下。
nginx虛拟主機防webshell完美版,使用nginx的朋友(yǒu)可(kě)以參考下。我們先來(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端口接受到訪問請(qǐng)求後,會(huì)把請(qǐng)求轉發給9000端口的php-cgi進行(xíng)處理(lǐ)
而如果修改php.ini中open_basedir= ../../../../../ ,針對兩個(gè)不同的網站(zhàn),www.a.com , www.b.com都會(huì)把請(qǐng)求發送給9000處理(lǐ),而如果先訪問www.a.com那(nà)麽../../../../../就會(huì)變成A網站(zhàn)的根目錄地址,然後這時(shí)候如果你(nǐ)訪問www.b.com,那(nà)麽open_basedir仍然是A網站(zhàn)的根目錄,但(dàn)是對于B來(lái)說,又是不允許訪問的,所以就造成了,第二個(gè)站(zhàn)點打開(kāi)以後會(huì)出現no input files,那(nà)麽有(yǒu)什麽解決辦法呢?
我們可(kě)以把不同的虛拟主機發送到不同的php-cgi端口進行(xíng)處理(lǐ),當然響應的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)求發送到9000端口 , www.b.com的請(qǐng)求發送到9001端口,依次類推
nginx配置修改了,相對的,php-fpm.conf也要修改
每個(gè)站(zhàn)點建一個(gè)conf
A站(zhà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站(zhà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,修改為(wèi)
<value name="listen_address">127.0.0.1:9001</value> 注意這裏的端口号
最後要修改php-fpm啓動腳本
#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
啓動服務
#/usr/local/webserver/php/sbin/php-fpm restart
查看端口
#netstat -tln
開(kāi)了9000 9001分别處理(lǐ)兩個(gè)站(zhàn)點請(qǐng)求
兩個(gè)php-cgi主進程加載不同的conf文件,這樣就完美解決了虛拟主機webshell能跨目錄的問題
當然,啓動之前記得(de)conf裏面的max_children,開(kāi)啓php-cgi子進程數(shù),相應要減少(shǎo)一些(xiē),以免造成內(nèi)存不足
企業網站(zhàn)建設解決方案 營銷型網站(zhàn)建設解決方案 行(xíng)業門(mén)戶網站(zhàn)建設解決方案 外貿網站(zhàn)解建設決方案 品牌形象網站(zhàn)建設解決方案 購物商城網站(zhàn)建設解決方案 政府網站(zhàn)建設解決方案 手機網站(zhàn)建設解決方案 教育培訓網站(zhàn)建設解決方案 珠寶高(gāo)端奢飾品網站(zhàn)建設解決方案 房(fáng)地産、地産項目網站(zhàn)建設解決方案 集團、上(shàng)市企業網站(zhàn)建設解決方案 數(shù)碼、電(diàn)子産品網站(zhàn)建設解決方案 美容、化妝品行(xíng)業網站(zhàn)建設解決方案
10年專業互聯網服務經驗 重慶最專業網站(zhàn)團隊 資深行(xíng)業分析策劃 B2C營銷型網站(zhàn)建設領先者 最前沿視(shì)覺設計(jì)、研發能力 時(shí)刻最新技(jì)術(shù)領先研發能力 具有(yǒu)完備的項目管理(lǐ) 完善的售後服務體(tǐ)系 深厚的網絡運營經驗
中技(jì)互聯一直秉承專業、誠信、服務、進取的價值觀,堅持優秀的商業道(dào)德,以用戶最終價值為(wèi)導向,向用戶提供優質産品和(hé)優質服務,從而赢得(de)了用戶的信賴。始終以不懈的努力、更高(gāo)的目标來(lái)要求自己。
主營業務:網站(zhàn)建設 | 重慶網站(zhàn)建設 | 重慶網站(zhàn)設計(jì) | 重慶網站(zhàn)制(zhì)作(zuò) | 重慶網頁設計(jì) | 重慶網站(zhàn)開(kāi)發
CopyrightZJCOO technology Co., LTD. All Rights Reserved.
渝ICP 備11003429号