您的位置:首页 > 运维架构 > Nginx

Nginx学习笔记(九) 配置文件详细说明

2014-11-03 23:41 399 查看

配置文件详细说明


  工作了几个月要开始做一些后台开发,免不了接触nginx,以前一般只是简单的使用,更多的分析内部模块的具体实现,为了部署需要进一步掌握配置方法。


全局配置信息

#nginx worker进程运行用户以及用户组
user  nobody nobody;

#nginx worker数量
worker_processes  4;

#全局错误日志文件,日志输出级别有debug、info、notice、warn、error、crit(类似于Python中的logging)
error_log  logs/error.log  notice;

#指定主进程id的存储文件位置
pid        logs/nginx.pid;

#指定一个nginx进程可以打开的最多文件描述符数目
worker_rlimit_nofile 65535;

#设定nginx的工作模式及连接数上限
events{
use epoll; #linux 服务器的优点所在
worker_connections      65536;#设定worker的最大连接数
}


  worker_rlimit_nofile:理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

  worker_connetions:每个工作进程允许最大的同时连接数(那么,这里是不是应该小于worker_rlimit_nofile)

  (nginx最大的连接数:Maxclient = work_processes * worker_connections)

虚拟主机配置

server {
listen          80;
server_name     domain.com *.domain.com;
return          301 $scheme://www.domain.com$request_uri;
}

server {
listen          80;
server_name     www.domain.com;

index           index.html;
root            /home/domain.com;
}


  在上面的配置信息中,server代表虚拟主机,而server_name用来设定虚拟主机匹配的域名,从而可以更具不同的域名来处理不同的请求内容,即监听端口listen是相同的~

  在第一个server中,该server只会匹配domain.com以及其子域名下的请求;

  在第二个server中,只会匹配www.domain.com的域名请求;

server {
listen          80 default_server;

index           index.html;
root            /var/www/default;
}


  Nginx 的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 Nginx 就会将请求送到指定了 default_server 的 节点来处理,如果没有指定为 default_server 的话,就跑到 localhost 的节点,如果没有 localhost 的节点,那只好 404 了。

http配置

http {
#设定mime类型
include       mime.types;
#默认文件类型
default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

   #长连接超时时间,单位是秒
keepalive_timeout  65;

#gzip  on;
    
#虚拟主机的配置
server {
#监听端口
listen       80;
#域名可以有多个,用空格隔开
server_name  localhost;

#charset utf-8;#默认编码

#access_log  logs/host.access.log  main;

location / {
root   html;
index  index.html index.htm;

#设置访问网段
allow  192.168.1.0/24;
deny all;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: