beginer's nginx guid
2015-11-04 20:01
330 查看
初学者指南
开启, 关闭和重启配置配置文件的结构
提供静态内容
设置简单的代理服务器
这个指南提供了基础的nginx介绍, 以及做一些简单的任务. 在开始之前请确保你的电脑已经安装了
nginx, 如果没有, 请看
installing nginx的笔记.
nginx有一个主进程和多个工作进程. 主进程主要是读取和检查配置和维护工作进程. 而真正处理请求的是工作进程. nginx使用事件驱动的模型和基于系统机制高效地分发请求在工作进程之间. 工作进程的数量(
worker_processes)可以在配置文件中定义, 否则nginx将自动调整为可用的cpu核心数量.
nginx和其模块工作的方式都定义在配置文件中, 配置文件默认被命名为nginx.conf以及被放置在 /usr/local/nginx/conf , /etc/nginx , 或者 /usr/local/etc/nginx .
开启, 关闭和重启配置
运行nginx可执行文件开启nginx. 一旦nginx开启了, 可以通过带有 -s 的参数来控制它. 使用下面的语法:nginx -s signal
而 signal 可以是下面的一个:
stop – 快速关闭
quit – 正常关闭
reload – 重新加载配置文件
reopen – 重新打开日志文件
举个例子, 关闭nginx的时候, 需要等待工作进程处理完当前的请求. 那么可执行下面的命令:
nginx -s quit
这个命令应该被开启nginx的那个用户去执行
在配置文件中所做的更改将不会被应用, 除非发送重新加载配置文件的命令给nginx, 或者重新开启. 为了冲洗你加载配置文件, 执行:
nginx -s reload
一旦主进程接收到重新加载配置文件的信号, 它将检查语法是否正确以及尝试应用在其配置中. 如果成功, 主进程将开启新的工作进程, 并发送信息给老的工作进程, 要求它们关闭. 否则, 主进程回滚改变的配置以及继续用老的配置工作. 老的工作进程一旦接收到关闭命令, 将停止接收新的请求连接但是会继续服务当前正在处理的请求直到这些请求处理完. 之后, 老的工作进程就会退出.
这个
signal也可以用Unix的工具帮助, 例如
kill. 用这种方式需要带上进程ID. nginx主进程的进程ID( nginx.pid )默认在目录 /user/local/nginx/logs 或者 /var/run . 举个例子, 如果主进程ID是1628
kill -s QUIT 1628
更多的信号内容, 可以看
controlling nginx
配置文件的结构
nginx由多个模块组成, 这些模块被在配置文件中的特定指令控制. 这些指令分为简单指令和块指定. 简单指令由名称和参数构成, 而两者之间用空格隔开, 用分号(;)结束. 一个块指令有和简单指令一样的结构, 但是它以一系列额外的说明作为结束, 这个说明被中括号(
{ })包围. 如果一个块指令在括号内可以有其他指令, 那么它被称为上下文. ( 例如:
events,
http,
server, 和
location).
在配置文件中, 放置在任意上下文外面的指令被认为是主上下文.
events和
http指令就在主上下文中, 而
server在
http中,
location在
server中.
而其他在
#后面的内容是注释内容.
提供静态内容
一个重要的web服务器提供文件( 例如图片或者静态html页面 ). 你将可以根据请求直接返回文件, 通过不同的本地目录: /data/www (这个目录可能包含html文件) 以及 /data/images (可能包含图片). 实现这个功能需要编辑配置文件, 在http块中设置一个包含了两个
location块的
server块.
http { server { location / { root /data/www; } location /images/ { root /data/images; } } }
在一些情况下无法按预期顺利完成, 你可以通过access.log
和error.log`文件找出原因, 日志文件在目录 /usr/local/nginx/logs 或者 /var/log/nginx .
设置简单的代理服务器
nginx常用的一个功能就是设置为代理服务器, 就是说一个服务器接收请求, 传递请求给被代理的多台服务器, 检索响应并发送给客户端.我们将配置一个基础的代理服务器, 提供图片请求从本地目录, 以及发送弄个所有其他请求给被代理的服务器. 在这个例子中, 所有服务器都将定义在单个nginx实例中.
首先, 定义一个被代理的服务器:
server { listen 8080; root /data/up1; location / { } }
这个简单服务器将监听8080端口( 默认监听80端口 ), 以及映射所有的请求到 /data/up1 路径在本地文件系统. 这个
root指令将被使用, 当location块指令提供的请求映射不包含
root指令的请求映射的时候.
接着, 在上个配置的基础上, 设置
proxy_pass指令, 以及匹配特定类型的图片. 参数是一个正则表达式匹配所有以 .gif , .jpg, 或者 .png .使用正则表达式之前应该使用
~.
server { location / { proxy_pass http://localhost:8080; } location ~\.(gif|jpg|png)$ { root /data/images; } }
相关文章推荐
- 一键安装lnmp-nginx(3)
- linux 下Nginx启动、关闭、重新加载脚本
- Nginx学习笔记
- 本机装nginx
- Nginx+keepalived实现负载均衡
- 利用Centos6系统自带的logrotate切割nginx日志
- Nginx初学者指南
- linux下nginx+php+mysql环境搭建
- Nginx manifest 实现 HTML5 Application Cache
- 使用mmnormalize解析nginx-error日志
- ASW02:安装常用软件之 : nginx
- Nginx 限流
- nginx篇四
- keepalive + Nginx实现高可用性及负载均衡
- centos7里nginx访问vsftp目录
- Nginx优化
- Nginx 限流
- nginx在ubuntu下的安装
- nginx performance monitor
- nginx配置过后转发界面不显示端口问题