一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - nginx虛擬主機防webshell完美版

nginx虛擬主機防webshell完美版

2019-10-09 16:37DoDo's Blog Nginx

nginx虛擬主機防webshell完美版,使用nginx的朋友可以參考下。

我們先來看下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端口接受到訪問請求后,會把請求轉發給9000端口的php-cgi進行處理

而如果修改php.ini中open_basedir= ../../../../../ ,針對兩個不同的網站,www.a.com , www.b.com都會把請求發送給9000處理,而如果先訪問www.a.com那么../../../../../就會變成A網站的根目錄地址,然后這時候如果你訪問www.b.com,那么open_basedir仍然是A網站的根目錄,但是對于B來說,又是不允許訪問的,所以就造成了,第二個站點打開以后會出現no input files,那么有什么解決辦法呢?

我們可以把不同的虛擬主機發送到不同的php-cgi端口進行處理,當然響應的php-fpm配置文件中的open_basedir也不同。。我們來看看怎么配置。。

首先,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 的請求發送到9000端口 , www.b.com的請求發送到9001端口,依次類推

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

每個站點建一個conf

 

A站點

#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>

 nginx虛擬主機防webshell完美版

 

 

B站點

#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>

 

nginx虛擬主機防webshell完美版

找到listen_address,修改為

<value name="listen_address">127.0.0.1:9001</value>   注意這里的端口號

 

nginx虛擬主機防webshell完美版

最后要修改php-fpm啟動腳本

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

nginx虛擬主機防webshell完美版

注釋掉原來的 #$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

 nginx虛擬主機防webshell完美版

開了9000 9001分別處理兩個站點請求

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

當然,啟動之前記得conf里面的max_children,開啟php-cgi子進程數,相應要減少一些,以免造成內存不足

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 人人看人人射 | 精品日本三级在线观看视频 | 亚洲一区二区三区久久精品 | 国产精品视频久久久久 | 俺去俺也在线www色官网 | 大东北chinesexxxx露脸 | 波多 在线播放 | 日本捏胸吃奶视频免费 | 成人久久18免费网站入口 | 青草草视频在线观看 | 我年轻漂亮的继坶2中字在线播放 | 2018亚洲男人天堂 | 日本一二线不卡在线观看 | meyd–456佐山爱在线播放 | 女黑人尺寸bbb | 亚洲精品久久啪啪网站成年 | 青草国产在线观看 | 亚洲 欧美 偷自乱 图片 | 91亚洲一区二区在线观看不卡 | 女人张开腿让男人桶视频免费大全 | 美女的隐私视频免费看软件 | 激情小说色图 | 亚洲福利在线观看 | 亚洲成人黄色网址 | 亚洲精品国产精品精 | 精品无人乱码一区二区三区 | 草草草视频在线观看 | 99久久免费视频 | 2019aw网站| 久久香蕉国产免费天天 | 亚洲一二三区久久五月天婷婷 | 精品国产剧情在线观看 | 日本人和黑人一级纶理片 | 欧美大陆日韩一区二区三区 | 热久久免费视频 | 十八女下面流水不遮免费 | 亚洲娇小videos | 91小视频在线观看免费版高清 | 国产最新精品视频 | 日本人成大片在线 | 久久精品热在线观看30 |