亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

php7 - Nginx中fastcgi_pass的配置問題
某草草
某草草 2017-05-16 17:18:04
0
1
730

在配置nginx的時(shí)候,fastcgi_pass的配置問題,如下所示:

    location ~ \.php$ {
        root           /home/wwwroot;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

主要是關(guān)于fastcgi_pass參數(shù),

#fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
#fastcgi_pass  unix:/tmp/php-cgi.sock;

這兩種方式有什么區(qū)別,php7該用哪一個(gè)?

某草草
某草草

全部回復(fù)(1)
大家講道理

Nginx和PHP-FPM的進(jìn)程間通信有兩種方式,一種是TCP,一種是UNIX Domain Socket.
其中TCP是IP加端口,可以跨服務(wù)器.而UNIX Domain Socket不經(jīng)過網(wǎng)絡(luò),只能用于Nginx跟PHP-FPM都在同一服務(wù)器的場景.用哪種取決于你的PHP-FPM配置:
方式1:
php-fpm.conf: listen = 127.0.0.1:9000
nginx.conf: fastcgi_pass 127.0.0.1:9000;
方式2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;
其中php-fpm.sock是一個(gè)文件,由php-fpm生成,類型是srw-rw----.

UNIX Domain Socket可用于兩個(gè)沒有親緣關(guān)系的進(jìn)程,是目前廣泛使用的IPC機(jī)制,比如X Window服務(wù)器和GUI程序之間就是通過UNIX Domain Socket通訊的.這種通信方式是發(fā)生在系統(tǒng)內(nèi)核里而不會在網(wǎng)絡(luò)里傳播.UNIX Domain Socket和長連接都能避免頻繁創(chuàng)建TCP短連接而導(dǎo)致TIME_WAIT連接過多的問題.對于進(jìn)程間通訊的兩個(gè)程序,UNIX Domain Socket的流程不會走到TCP那層,直接以文件形式,以stream socket通訊.如果是TCP Socket,則需要走到IP層,對于非同一臺服務(wù)器上,TCP Socket走的就更多了.

UNIX Domain Socket:
Nginx <=> socket <=> PHP-FPM
TCP Socket(本地回環(huán)):
Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM
TCP Socket(Nginx和PHP-FPM位于不同服務(wù)器):
Nginx <=> socket <=> TCP/IP <=> 物理層 <=> 路由器 <=> 物理層 <=> TCP/IP <=> socket <=> PHP-FPM

像mysql命令行客戶端連接mysqld服務(wù)也類似有這兩種方式:
使用Unix Socket連接(默認(rèn)):
mysql -uroot -p --protocol=socket --socket=/tmp/mysql.sockmysql -uroot -p --protocol=socket --socket=/tmp/mysql.sock
使用TCP連接:
mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306使用TCP連接:

mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306??
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板