nginx是web容器么


本文摘自PHP中文网,作者(*-*)浩,侵删。

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参数设置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

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设置正确的前提下,对性能提升最大的就是

1

2

3

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文件呢?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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容器么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

nginx启动后可以用哪些命令控制?

nginx的geoip有什么用

nginx启动的时候提示端口被占用怎么解决

如何在不影响业务的情况下升级nginx版本

403nginx是什么

nginx配置文件实例详解

nginx为什么比apache快

nginx负载均衡原理怎么口述

如何在linux中使用nginx设置负载平衡

nginx在做负载均衡时如何配置文件

更多相关阅读请进入《nginx》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...