Nginx服务器的基本配置

nginx.conf的基本结构

nginx.conf是nginx的配置文件,其文件结构如下

### 全局模块                                      
...

### events模块
events {                                                 
    ...
}

### http模块
http {
    ...

    server {
        ...
        location /web1 {
          ...
        }
        location /web2 {
          ...
        }
    }
    server {
        ...
        ...
    }
}

以上主要分为三个部分
1.全局模块配置
2.events模块配置
3.http模块配置

全局模块配置

默认的全局块的配置如下:

#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;

在全局块通常配置类似运行Nginx服务器的用户、Nginx运行的进程数、服务器错误日志存储路径、Nginx进程号等Nginx服务器的全局属性

events模块配置

events模块主要配置的是Nginx服务器与用户之间连接的情况,在对服务器进行调优的时候会去重点关注这个部分。例如:
worker_connections:每个Nginx服务进程连接客户端的最大数量,默认情况下可以只配置这个属性,默认配置是1024
use:Nginx服务器的事件驱动模型,包括select、poll、epoll、rtsig、kqueue、/dev/poll、eventport几个事件驱动模型。事件驱动模型决定Nginx服务器对Web请求的响应和处理方式,因此需要根据应用场景和需求来选择适合的事件驱动模型,可以有效提高响应效率。

还有其他的一些对Nginx服务器的配置,包括序列化、进程锁、是否允许同时接收多个网络请求等,需要根据实际情况去找对应的配置。

http模块配置

http模块是Nginx服务器配置的重要组成部分。在这个模块中可以配置Web访问、反向代理、缓存等主要功能。
http模块可以配置许多属性,例如:

    include       mime.types;          #引入MIME-Type定义
    default_type  application/octet-stream;       #非MIME-Type时的默认类型

    #access_log  logs/access.log  main;        #日志路径

    sendfile        on;             #是否使用sendfile传输文件
    #tcp_nopush     on;           #是否等TCP数据包到一定大小再发送

    #keepalive_timeout  0;
    keepalive_timeout  65;              #Nginx服务器与客户端保持连接的超时时间

    #gzip  on;                      #是否开启gzip压缩

除此之外,还可以配置单连接请求数上限等信息。

server:

每一个server配置相当于一台虚拟主机。server下面可以配置这台虚拟主机要去监听的端口,例如:

listen 8082

另外,还可以去配置这台虚拟主机的日志路径、错误返回的html等。

location:

每个server下面会配置一个或者多个location,每个location相当于一个指令,将Nginx收到的请求进行匹配,再对匹配到的请求进行处理。
例如可以这样去配置一个server:

server {
        listen       80;

        #这台虚拟主机的名字,没有特殊要求可以暂时不配置
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /web1/upload/ {
            alias /home/weblogic/upload/;
            autoindex on;
        }

        location /web1/upload/ {
            root /home/weblogic/upload/;
            index  index.html
        }
}

这个server会持续监听80端口。

第一个location的alias会将对/web1/upload/的请求,直接转到访问系统的/home/weblogic/upload/目录,可以访问到这个目录下的文件。
将autoindex设置为on的话可以在访问/web1/upload/的时候直接将对应目录下的文件全部显示出来。不设置的话将不能获得目录,只能根据文件名去取出文件。

第二个location用的是root则不同,会将对/web1/upload/的请求,修改为访问/web1/upload/home/weblogic/upload/,这就是root与alias的不同之处。
设置index将使请求直接定向到index.html文件。

你可能感兴趣的:(Nginx服务器的基本配置)