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;
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。