#运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 4; #PID文件 pid /run/nginx.pid; #工作模式及连接数上限 events { worker_connections 768; #单个后台worker process进程的最大并发链接数 # multi_accept on; } #设定http服务器,利用它的反向代理功能提供负载均衡支持 http { #sendfile 实际上是 Linux2.0+以后的推出的一个系统调用,web服务器可以通过调整 #自身的配置来决定是否利用 sendfile这个系统调用。等到数据包最大时,一次性的传输出去, #这样有助于解决网络堵塞,已经是默认了。 sendfile on; #tcp_nopush 会设置调用tcp_cork方法,这个也是默认的,结果就是数据包不会马上传送出去, #等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。 tcp_nopush on; tcp_nodelay on; #连接超时时间 keepalive_timeout 65; #为了快速寻找到相应MIME type,Nginx使用散列表来存储MIME type与文件扩展名。 types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; #设定mime类型,类型由mime.type文件定义 include /etc/nginx/mime.types; default_type application/octet-stream; #设定日志文件存放位置 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; #开启gzip压缩 gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
主配置文件的最后两行命令,代表引用其他的文件,我们主要来看看/etc/nginx/sites-enabled/default
server { #侦听80端口 listen 80 default_server; listen [::]:80 default_server ipv6only=on; #定义服务器的默认网站根目录位置 root /usr/share/nginx/html; #定义默认首页索引文件的名称 index index.html index.htm; #定义可以使用http://localhost/访问 server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } #添加fastcgi代理配置 location /demo.cgi { fastcgi_pass 127.0.0.1:8888; #指定要执行的fastcgi ip加端口 #如果URI以斜线结尾,文件名将追加到URI后面,这个值将存储在变量$fastcgi_script_name fastcgi_index main.cgi; include fastcgi_params; #传递fastcgi参数 } }
location配置语法
语法:location [=|~|~*|^~] /uri/ { ... }
标识 | 含义 |
---|---|
= | 在精确匹配完成后并不进行额外的搜索。 |
~* | 不区分大小写的正则表达式。 |
~ | 区分大小写的正则表达式。 |
^~ |
location = / { # 只匹配 / 的查询. [ configuration A ] } location ^~ /images/ { # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。 [ configuration B ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配任何以.gif, .jpg, or .jpeg结尾的文件,"\."代表转义字符, #但是/images/123.gif 的请求将在Configuration B中处理。 [ configuration C ] } location / { # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配, #例如/images/将被configuration B中处理。 [ configuration D ] }
如果我们需要添加fastcgi配置:
fastcgi_pass 127.0.0.1:8888;
指定FastCGI服务器监听端口与地址。
fastcgi_index main.cgi;
指明默认cgi文件,通过SCRIPT_FILENAME传递。
fastcgi_params
文件,保存于/usr/local/nginx/conf下,为我们的FastCGI模块设置了基本的环境变量。
负载均衡列表基本配置:
•location / {}:对aspx后缀的进行负载均衡请求,假如我们要对所有的aspx后缀的文件进行负载均衡时,可以这样写:location ~ .*.aspx$ {}
•proxy_pass:请求转向自定义的服务器列表,这里我们将请求都转向标识为http://cuitccol.com的负载均衡服务器列表;
•在负载均衡服务器列表的配置中,weight是权重,可以根据机器配置定义权重(如果某台服务器的硬件配置十分好,可以处理更多的请求,那么可以 为其设置一个比较高的weight;而有一台的服务器的硬件配置比较差,那么可以将前一台的weight配置为weight=2,后一台差的配置为 weight=1)。weigth参数表示权值,权值越高被分配到的几率越大;