阻塞呼叫:事件還沒準備好,那就只能等了,等事件就準備好了,你再繼續吧。
阻塞呼叫會進入核心等待,cpu就會讓出去給別人用了,對單線程的worker來說,顯然不合適,當網路事件越多時,大家都在等待呢,cpu空閒下來沒人用,cpu使用率自然上不去了,更別談高並發了。
異步非阻塞:非同步非阻塞的事件處理機制,具體到系統呼叫就是像select/poll/epoll/kqueue這樣的系統呼叫。
它們提供了一種機制,讓你可以同時監控多個事件,調用他們是阻塞的,但可以設定超時時間,在超時時間之內,如果有事件準備好了,就返回。
tar -zxvf nginx.tar.gz
./configure
linux 安裝gcc,gcc-c++
yum -y install gcc gcc-c++ autoconf automake
安裝pcre
yum -y install pcre-depcreum y install zlib zlib-devel
make
make install
啟動nginx 伺服器
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
kill -QUIT 15369
2.快速停止
kill -TERM 15417
kill -INT 15417
3.強制停止
pkill -9 nginx
4.驗證檔案的正確性
./nginx -tin -c /usr/local/nginx/conf/nginx.conf
5.nginx 重新啟動
./nginx -s reload(進入所在目錄)
kill -HUP 15446
6.USR1:切換日誌檔案
USR2:平滑升級可執行進程
WINCH:從容關閉工作進程(kill -WINCH 2255)
7.查看版本
./nginx -V
#設定用戶
#user nobody
#工作衍生進程數(等於cpu的核數或222倍的核數)
worker_processes 6;
#設定pid存放的路徑
#pid logs/nginx.pid;
//最大連線數
events {
worker_connections 1024;過的檔案(原來的30%))
#gzip on
#設定字元編碼
charset koi8-r;
charset gb2312;
nginx設定檔的抽象(實例)
user nobody
worker_proses
worker_proses worker_connections 1024;
}
http{
server{
listen 192.168.1.7:80;
server_name 192.168.1.7;
access_log logs/server1.access.log.combined;
location /
{
index index.html index.htm ;
root html/server1;
}
}
server{
listen 192.168.1.8:80;
server_name 192.168.1.17;
access_log logs/server2.index; index.htm;
root html/server2;
}
}
}
設定主機的ip位址和子網路遮罩
ifconfig eth1 192.168.1.10 netmask 255.255.255.0ipip與子網路遮罩
ifconfig eth1:1 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0
虛擬主機的設定:在配置了ipiplog指令是用來設定nginx伺服器的日誌檔案的記錄格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
_$request" '
he _$m. '"$http_user_agent" "$ http_x_forwarded_for"';
remote_addr : ip位址
remote_user : 使用者
request : 所要求的網址
status : 狀態的狀態數agent : 瀏覽器(客戶端)
http_x_forwarded_for:類似ip
//修改nginx預設的設定檔
vi /usr/local/nginx/conf/nginx.conf
access_log 儲存路徑
/*****************nginx 實現負載平衡*********************/
worker_connections 1024;
}
http{
upstream myproject{
ip_hash;
server 115.239.210.27;
server 180.96.12.1;
server 42.156.140.7;
server 140.205.230.49;
server 122.225.67.253;
}
server{
listen 8080;
location /
myproject;
}
}
以上就介紹了nginx的安裝及使用,包括了nginx的內容,希望對PHP教學有興趣的朋友有幫助。