概述
简介
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. For a long time, it has been running on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and Rambler. According to Netcraft, nginx served or proxied 25.14% busiest sites in March 2016.
译文
nginx[engine x]是HTTP服务器,反向代理服务器,邮件代理服务器,同时也是通用TCP/UDP代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发。在很长一段时间里,它被运用在许多俄罗斯的高负载量的网站上。根据来自Netcraft的消息,到2016年3月,nginx服务或者代理了全球25.14%访问最高的网站。
什么是反向代理
方向代理的示意图如下。
代理就相当于一个中介,HTTP请求都先过代理,然后再到服务器的。以前都代理一般都放在浏览器的内网这一端,后来出现了放在服务器集群端的代理,为了区分,浏览器内网端成为正向代理(Forward Proxy),服务器集群端的代理就称为反向代理(Reverse Proxy)。
反向代理的优点
- 负载均衡
- 屏蔽真正服务器以保障安全性
- 静态资源和缓存
- 压缩请求能降低带宽压力
- 集中处理日志和审计
- URL重写
nginx的部分优点
- 安装和配置非常容易。
- 处理静态文件是最快最好的服务器。
- 并发处理能力是Apache的4倍以上。
- 支持负载均衡。
- nginx官方文档充足。
nginx的下载和安装
在最新的Ubuntu系统上直接可以用apt-get下载和安装最新的nginx。
1 | > apt-get install nginx |
配置nginx
官方网站中有全面的配置文档说明,本文仅对简单代理时配置进行说明。在/etc/nginx/nginx.conf配置文件中,官方默认为我们配置好了自动读取/etc/nginx/conf.d/*.conf。所以我们只需要在/etc/nginx/conf.d/中创建.conf文件即可。
1 | > vim /etc/nginx/conf.d/test.conf |
下面是一个简单的配置Demo。
1 | server { |
很容易就可以看出,我们配置了一个server,监听了80端口,server名为ouyang.io,把所有根路径的请求都做了代理,交给了http://localhost:4000 ,access日志和error日志的路径也分别配置了。以上就是一个最基本的配置。
也可以参考官方比较全面的配置示例。
管理nginx
启动nginx。
1 | > service nginx start |
快速停止nginx。
1 | # service nginx stop |
正常关闭nginx。
1 | > nginx -s quit |
当修改了配置文件,需要重新加载时。
1 | > nginx -s reload |