nginx从零开始学-----01

mac2025-03-22  12

作为一个后端开发人员以前没怎么在意nginx,只知道有这么一个东西,用的时候呢也是百度一下,今天突然间觉得想真正的掌握这个工具,所以今天开始深入的去学习一下这个工具,这个是我的学习笔记,或有错误,望海涵。

1、Nginx是什么?

我第一次听说nginx是听到别人说什么反向代理,负载均衡。当时是觉得这个东西好高大上啊,听都没听说过,现在看来还是年轻了。最不喜欢IT非要搞那么多专业术语,把简单的事情复杂化,什么IOC,DI,正向代理,反向代理,这样模式那样模式。简单来说Nginx就是分发客户端对服务端的请求(这是其中的核心功能,当然还有其他的)。所谓正向代理和反向代理中间都有一个组件,区别就是,正向代理是将多个客户端的请求都搞成一个去请求(参考局域网访问外网),反向代理就是多个服务端包成一个向外提供服务。so easy?!是的简单来说就是这样,当然了,简单的东西也可以慢慢积累变成复杂,乐高就是这样,你只要有想法有毅力你可以造一辆车都可以。

官方解释nginx

nginx是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。下面就是他的主要功能介绍,主要就是分成HTTP和IMAP/POP3,都是基于TCP/IP协议的应用层(最近也在学习【复习O(∩_∩)O】基础的网络知识)。

__HTTP基础功能:__

处理静态文件,索引文件以及自动索引;反向代理加速(无缓存),简单的负载均衡和容错;FastCGI,简单的负载均衡和容错;模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;SSL 和 TLS SNI 支持;

__IMAP/POP3 代理服务功能:__

使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;认证方法:POP3: POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5;IMAP: IMAP LOGIN;SMTP: AUTH LOGIN PLAIN CRAM-MD5;SSL 支持;在 IMAP 和 POP3 模式下的 STARTTLS 和 STLS 支持;

下面这个图就是他基本的作用展示

 

2、Nginx 是优越的特性:

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

我个人觉得的一个坑--几乎可以做到7*24不间断运行,这尼玛是说出了问题自己负责的意思吗?不过这些小的问题都不是问题,哪个服务器一年还不上几个需求重启几次的?如果几年都不重启的,不上新需求的单位,请联系我,你们那里还差人吗。

3、Nginx的下载与安装

官网下载地址:http://nginx.org/en/download.html,下东西一定去官网,不要直接百度,有些程序是可以植入病毒木马的,到时候你的服务遭了,你都不晓得怎么回事,所以宁愿多花点时间也不要图方便随便去下载。

安装必要的组件

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。

ububtu平台编译环境可以使用以下指令

apt-get install build-essential apt-get install libtool

安装make:centos平台编译环境使用如下指令

yum -y install gcc automake autoconf libtool make

安装gc++

yum install gcc gcc-c++

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。1.选定源码目录 可以是任何目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/src wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz tar -zxvf pcre-8.37.tar.gz cd pcre-8.34 ./configure make make install

3.安装zlib库 http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /usr/local/src wget http://zlib.net/zlib-1.2.8.tar.gz tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make make install

4.安装ssl(某些vps默认没装ssl)

cd /usr/local/src wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz tar -zxvf openssl-1.0.1t.tar.gz

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

5.安装nginx

cd /usr/local/src wget http://nginx.org/download/nginx-1.4.2.tar.gz tar -zxvf nginx-1.4.2.tar.gz cd nginx-1.4.2 ./configure --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=/opt/app/openet/oetal1/chenhe/pcre-8.37 \ --with-zlib=/opt/app/openet/oetal1/chenhe/zlib-1.2.8 \ --with-openssl=/opt/app/openet/oetal1/chenhe/openssl-1.0.1t make make install

安装成功后 /usr/local/nginx 目录下如下--with-pcre=/usr/src/pcre-8.34 指的是pcre-8.34 的源码路径。 --with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。

fastcgi.conf            koi-win             nginx.conf.default fastcgi.conf.default    logs                scgi_params fastcgi_params          mime.types          scgi_params.default fastcgi_params.default  mime.types.default  uwsgi_params html                    nginx               uwsgi_params.default koi-utf                 nginx.conf          win-utf

6.启动

确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx,

netstat -ano|grep 80

如果查不到结果后执行,有结果则忽略此步骤(ubuntu下必须用sudo启动,不然只能在前台运行)

sudo /usr/local/nginx/nginx

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

----------------------------------------------------- 到这里nginx就安装完成了,如果只是处理静态html就不用继续安装了

如果你需要处理php脚本的话,还需要安装php-fpm。

这样我们就在我们的服务器上安装好了Nginx了,后续就来讲下如何来使用。

最新回复(0)