web容器比較準確的說應該叫web伺服器(Python的web容器有web.py等),它是來管理和部署web應用的。
所以,Nginx是web容器,官方介紹Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協定下發行。
其特點是佔有記憶體少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好。
中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
下面有Nginx作為web容器處理靜態頁面的範例。
看了大量別人的調優經驗有Linux核心參數設定的,有nginx參數設定的,有php-fpm設定的,有修改nginx原始碼重新編譯的。
第一,nginx參數設定
user www www; #worker进程的用户 worker_processes 8; #一般和CPU核数一致 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000; #error_log /www/log/nginx_error.log crit; #为了得到更好的IO我是关闭日志的 pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 204800; events { use epoll; worker_connections 204800; } http { include mime.types; default_type application/octet-stream; charset utf-8; server_names_hash_bucket_size 128; client_header_buffer_size 2k; large_client_header_buffers 4 4k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 4k; fastcgi_buffers 8 4k; fastcgi_busy_buffers_size 8k; fastcgi_temp_file_write_size 8k; fastcgi_cache TEST; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500; open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 30s; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 8080; server_name localhost; index index.php index.htm; root /www/html/; location /status { stub_status on; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { expires 30d; } log_format access '$remote_addr -- $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; #access_log /www/log/access.log access; } }
在存取靜態資源的時候,在worker_proccess和worker_connections設定正確的前提下,對效能提升最大的就是
open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 30s;
這幾條,快取檔案資源。我用ab測試效能爆炸性成長,原先發送1000個請求並發1000要10秒,加上後立刻變0.4了。吞吐率從幾十K變成了1M,我是虛擬機單核心1G的設定哦。 。 。
那麼訪問PHP檔呢?
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 4k; fastcgi_buffers 8 4k; fastcgi_busy_buffers_size 8k; fastcgi_temp_file_write_size 8k; fastcgi_cache TEST; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500;
可以顯著提高效率
提高nginx效率最有效的方法是開啟各種快取!
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是nginx是web容器麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!