1、nginx入门:Nginx 的安装和配置指南

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

1、安装
一、安装centos中安装ngnixhtml

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

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

2、配置指南node

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

一、Nginx 全局配置参数nginx

全局配置:就是设置对整个ngnix全部地方都生效的配置正则表达式

例:centos

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
}

二、使用 include 文件。服务器

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

mime.types文件内容app

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

三、HTTP 的 server 部分socket

一、客户端指令
二、文件I/O指令:
三、Hash指令:为变量分配内存
四、socket指令:tcp

四、虚拟服务器部分

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

五、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;     
        }
    }
}