Nginx 是一台高性能 Web 服务器,它使用了非常少的系统资源。

一、安装
1、安装centos中安装ngnix

1、使用rpm来安装
sudo yum install nginx

2、编译二进制版本来安装
sudo vi /etc/yum.repos.d/nginx.repo
执行安装
sudo yum install nginx

二、配置指南

基本配置格式。
Nginx 全局配置参数
使用 include 文件。
HTTP 的 server 部分
虚拟服务器部分。
location一一-where, when, how
mail的serer 部分。
完整的示例配置文件。

1、Nginx 全局配置参数

全局配置:就是设置对整个ngnix所有地方都生效的配置

例:

user  nobody;    #配置用户和组
worker_processes  1; #允许生成的进程数,默认为1 

error_log  logs/error.log;        #错误日志路径。
error_log  logs/error.log  notice; #错误日志路径,通知级别。
error_log  logs/error.log  info;    #错误日志路径,信息级别。
error_log  logs/error.log  debug;    #错误日志路径,debug级别修改编译时进行配置。

pid        logs/nginx.pid;  #指定 nginx 进程运行文件存放地址 

events {
    use  /dev/proll  #事件驱动模型select|poll|kqueue|epoll|resig
    worker_connections  1024; #最大连接数,默认为512
}

2、使用 include 文件。

http {
    include       mime.types;   #文件扩展名与文件类型映射表
    server
    {}
}

mime.types文件内容

types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    等等
    }

3、HTTP 的 server 部分

1、客户端指令
2、文件I/O指令:
3、Hash指令:为变量分配内存
4、socket指令:

4、虚拟服务器部分

任何由关键字server开始的部分都被称作“虚拟机服务器”部分,server的作用是根据不同的server_name指令逻辑分割资源,listen指定具体的IP地址/端口组合或者Unix域套接字路径:
例:
listen address[:port] 
listen port
listen unix:path;

5、Locations-where,when,how

location指令可以用于server部分,用于对匹配的url进行重定向、访问控制等。

= 精准匹配并终止搜索
~ 区分大小写
~* 不区分大小写
^~ 最佳匹配,对匹配的不在进行下面的匹配了优先级高于正则表达式

完整示例:

全局配置

user www; //worker 进程的用户和组
worker_processes 12; //启用的进程
error_log /var/log/nginx/error.log; //记录错误的级别 debug info notice warn error、crit alert emerg
pid /var/run/nginx . pid; //记录主进程id的文件
events {
    use /dev/poll;
    worker_connections  2048;
    }
http {
    include    /opt/local/etc/ng nx/mime.types;   #文件扩展名与文件类型映射表
    default_type    application/octet-stream;   #指定默认处理的文件类型可以是二进制
    sendfile on;    #允许文件复制
    tcp_push on ;    #它能够使得 Nginx 个数据包中尝试发送响应头以及在数据包中发送 个完整的文件,配合sendfile on;使用
    tcp_nodelay on;    #启用或者禁用 TCP NODELAY 选项,用于 keep-alive 连接
    keepalive_timeout 65;    #该指令指定 keep-alive 连接持续多久 个参数也可以设置,用于在响应头中设置“ keepalive ”头
    server_names_hash_max_size 1024 ;    #该指令指定 server_name 散列表的最大大小
    
    server {            #则使用default_server.如果没有指定default_server,则会选择第一个可用的server.我们可以指定对于没有匹配的host值时,返回错误到客户端.可以用来防止别人把垃圾流量转到你的网站。
        listen 80 ;        #指定端口
        return 444;        
    }
    
    server {
        listen 80 ;
        server_name www.example.com;    #指令逻辑分割的资源
        location / {
            try_ files $uri $uri/ @mongrel;   #此处表示会匹配/ 目录下的所有文件进行处理然后返回给/ url 表示其他 1.文件/opt/html/images/test.gif   2.文件夹 /opt/html/images/test.gif/下的index文件  3. 请求127.0.0.1/images/default.gif 4.其他注意事项  1.try-files 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页  即 访问127.0.0.1/images/ 不会去访问  127.0.0.1/images/index.html 
        location @mongrel {        #如果匹配不上的url就使用这个
            proxy_pass http : //127.0.0.1:8080;     
        }
    }
}

文nKkCJ
1 声望1 粉丝