码迷,mamicode.com
首页 > 其他好文 > 详细

nginx的配置初探

时间:2015-01-12 00:16:56      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

总体而言,nginx的配置比起apache来是要简洁很多,而言容易理解得多的。我们先看一个简化版的配置文件nginx.conf:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    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  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;
       // ... ...
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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

}

 1. 可以看到nginx的配置文件可以分成两大部分

1)对nginx自己的进程的相关的配置:1.worker进程的数量;2.每个进程最多能够处理多少个连接;3.运行nginx的用户;4.日志文件;5.pid文件地址

2)对http服务器的配置,也就是 http 虚拟机的配置

2. nginx进程相关的配置:

   worker_processes 配置worker进程的数量,一般根据负载和CPU来将其设置成:cpu * 核心数,设置的太多会造成对CPU的争用;

   worker_connections 配置每个worker进程能够处理多少个连接,一般根据内存,cpu, 负载来配置;

3. http虚拟机的配置:

nginx处理http的虚拟机的配置都在http段内。http段中又分为:http的全局配置;针对每个server的配置,也就是针对每个虚拟主机的配置;可以看到在nginx中可以像apache一样配置多个虚拟主机。而且要比apache配置要简单得多。每一个server段配置一个虚拟主机,虚拟主机中主要配置让其监听哪个端口,进来的url如何通过location的配置去访问磁盘上哪个目录中存放的哪个文件,所以location的配置才是重点所在。

4. server的配置:
server {
        listen         80;
        server_name  www.baidu.com;

    location / {}

    // ... ...

}

listen表示监听那个端口,对于http我们一般都是监听80端口。server_name表示我们的域名,也就是网址,比如:www.baidu.com, www.cnblogs.com等等。不同的server可以监听同一个80端口,但是server_name不能相同,也可以server_name相同,但是监听端口不一样。server段中的location段主要配置对于进入本虚拟主机的url的处理。

4. location的配置:
对于根据server端中配置的 listen 监听端口和 server_name 域名而进入对于虚拟主机的url,会根据 location 的匹配情况来访问某个匹配的 location,最后访问到服务器上的某个页面。而 url 到 location的匹配分为了三种情况:





nginx的配置初探

标签:

原文地址:http://www.cnblogs.com/digdeep/p/4217310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!