首页 > 系统相关 >认识Nginx

认识Nginx

时间:2022-08-17 15:47:19浏览次数:105  
标签:http nginx 认识 配置 Nginx org 安装

无论你用浏览器还是APP访问多数网站,到达的第一站就是Nginx。

后来者居上的Nginx

千禧年前后,互联网业务迎来了高速发展,老牌的Web服务器都无法满足高性能、高可靠的市场需求。
一个开源的(遵循BSD许可证)、流行的HTTP和反向代理服务器在2004年应运而生,它就是Nginx。它作为HTTP服务器可以用较少的内存来提供可靠的静态站点服务,同时作为反向代理支持HTTP、电子邮件、TCP和UDP等多种协议,可以用作多个上游服务器的流量入口。所谓后来者居上,Nginx出道十五年经历了几百个版本的快速迭代(其中,2008年发布的Nginx0.7.0解决了C10K问题迎来了Nginx的高速发展),如今稳居市场占用率榜首。 (Netcraft官网统计数据显示2019年10月市场占有率32.88%)
1.png
2.png
Nginx相对于其他Web服务器有绝对的优势赢得市场的认可。
3.png
因此,多数互联网公司使用Nginx这位业界“流量担当”来承担流量入口庞大而繁复的数据传输工作。

Nginx安装

Nginx官方提供了Nginx Community(Nginx开源版本)和Nginx Plus(Nginx商业版本)两个发行版,其Nginx Plus在监控、可用性等方面做了大量的优化。另外,淘宝网基于Nginx Community定制化发布了Tenginx发行版;章亦春(原淘宝员工))基于Nginx Community与 Lua 完美结合发布了OpenResty,OpenResty可以方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
多数互联网公司出于业务和成本的考虑选择使用Nginx Community发行版,故后文重点介绍Nginx Community。
Nginx支持的操作系统包含Linux、Windows、macOS、Solaris、AIX、HP-UX 、FreeBSD等,后文主要介绍Nginx在Linux和Windows上实践。

Windows操作系统下安装Nginx

在Windows操作系统下安装Nginx支持二进制安装方式和源码安装方式。
由于源码安装方式较为复杂不推荐使用,有兴趣的朋友可以参照官方文档http://nginx.org/en/docs/howto_build_on_win32.html
Windows操作系统下使用二进制安装方式非常简单,

  • 下载安装包,官方链接http://nginx.org/en/download.html
  • 将压缩包解压到一个不包含空格的路径中
  • 在cmd.exe中执行start nginx.exe启动服务

虽然,Windows操作系统下使用二进制方式安装Nginx非常简单,但是由于缺少一些特性(可以启动多个Worker进程,但只有一个Worker进程工作;不支持UDP代理功能),Nginx官方将其定义为Beat版本不可用于生产环境。参考链接: http://nginx.org/en/docs/windows.html

Linux操作系统下安装Nginx

在Linux操作系统下安装Nginx支持二进制安装方式和源码安装方式。Linux操作系统的版本较多且安装方式类似,本文以CentOS 7为例。
二进制的安装方式比较简单,可以使用Nginx官方预编译的包进行安装。
方式一:使用官方repository仓库安装主线稳定版本的Nginx(参考链接:http://nginx.org/en/linux_packages.html#RHEL-CentOS

#安装依赖
sudo yum install yum-utils

#要设置yum存储库,请创建/etc/yum.repos.d/nginx.repo 包含以下内容的文件
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

#默认情况使用主线的稳定版Nginx
sudo yum-config-manager --enable nginx-mainline

#执行安装Nginx
sudo yum install nginx

#启动服务
Systemctl start nginx

方式二:下载官方预编译好的Nginx软件进行安装。(官方下载地址http://nginx.org/packages/centos/7/x86_64/RPMS/

#安装Nginx
sudo yum install nginx-$version.rpm

#启动服务
Systemctl start nginx

二进制安装Nginx的方式虽然简单易用,但是,可定制性弱,不能按需选择定制模块和功能。因此,在生产环境中,我们通常会选择源码的安装方式。
源码安装方式分为几个步骤:

  • 下载源码
  • 安装操作系统依赖
  • 执行./configure 配置
  • 执行make编译
  • 执行make install 安装步骤

我们可以通过官网下载我们需要的Nginx源码(参考地址:http://nginx.org/download )。由于Nginx的Rewrite模块和SSL模块依赖操作系统的pcre-devel和openssl-devel,因此我们需要提前安装操作系统依赖。

#安装操作系统依赖
yum install pcre-devel openssl-devel

./configure配置步骤,我们可以通过./configure –help指令可以查看可配置项如安装目录、启动用户、默认安装的模块、指定安装的模块等。此处给出一个简单的示例:

#安装操作系统依赖
./configure --prefix=$path --with-http_ssl_module --with-pcre

./configure配置步骤Nginx脚本会检查操作系统依赖等是否符合预期。如果,执行过程没有错误输出则配置正常,我们可以执行编译和安装步骤。

make
make install

待执行完成如上指令后,我们的Nginx已经完成安装。我们可以通过如下的指令管理Nginx。

$path/nginx -h                #查看帮助文档
$path/nginx -v|V              #-v查看版本号,-V可以查看版本号、编译参数更多详细信息
$path/nginx                     #启动Nginx服务
$path/nginx  - s quit         #停止Nginx服务
$path/nginx -s reload        #优雅重启Nginx
$path/nginx -t                 #验证配置文件正确性并退出
$path/nginx -T                 #验证配置文件正确性,并dump后退出

待启动Nginx后,可以通过浏览器访问http://127.0.0.1查看Nginx的欢迎页面。
3.png

Nginx目录结构

Nginx安装完成后在安装目录中中生成了一些文件和目录。conf目录存放配置文件,其中nginx.conf是主配置文件;html目录存放Nginx提供的默认页面;logs目录存放日志文件,包含错误日志和访问日志;sbin目录存放Nginx二进制文件,用于管理Nginx服务;*_temp目录:存放缓存文件等。
4.png
Nginx的主配置文件是conf/nginx.conf,通常我们通过修改该文件搭建Web服务器、反向代理服务器等。它分为全局配置、事件配置、HTTP配置、Stream配置和Mail配置几个部分。

  • 全局配置主要Nginx启动用户、Worker进程个数等类似的全局配置。
  • 事件配置主要配置事件类型、最大连接数等配置。
  • HTTP是我们较为常用的配置部分,它可以定义所有的HTTP相关的配置,如定义HTTP全局配置、定义虚拟机、定义Location等。
  • Stream配置中定义所有TCP|UDP相关的配置。
  • Mail配置中定义所有邮件相关的配置。

5.png

Nginx实现反向代理(Demo)

在Nginx的HTTP配置段增加一个虚拟主机www.zhanglaotang.com,将该域名的的请求代理到Nginx的首页。

server{
    listen 80;
    server_name www.zhanglaotang.com;
    location / {
    proxy_pass http://nginx.org/;
    }
}

完成配置修改后,执行nginx -t 检查配置的正确性,并完成nginx -s reload优雅重启Nginx让其配置生效。
实验成功后,我们可以看到访问www.zhanglaotang.com返回的结果是Nginx的首页内容。
6.png

标签:http,nginx,认识,配置,Nginx,org,安装
From: https://www.cnblogs.com/zhanglaotang/p/16590887.html

相关文章

  • Nginx工作原理
    Nginx作为边缘节点,它处理的流量是其他节点的数倍,是如何处理上万的请求了?我们将从Nginx的进程管理机制和请求处理流程2个方面介绍Nginx如何高效的处理请求。进程管理机制......
  • nginx使用
    windows启动:(1)检查80端口应用netstat-ano|findstr0.0.0.0:80(2)杀死该进程taskkill/F/pid9016(3)cmd管理员模式进入nginx文件夹nginx.exe (4)停止nginx(快速/......
  • Filbeat采集nginx-ingress日志
     一、创建configmap配置文件注:filebeat6以上版本需要将prospectors改为inputs,paths下指定的nginx-ingress日志路径匹配模式以及hosts指定的kafka地址需要根据实......
  • Spring框架认识
    Spring框架1、入职必备篇:Spring框架Spring属于开源框架,Spring是于2003年流行起来的一个轻量级的Java开发基础框架,它是为了解决企业应用开发的复杂性而提供的解决方案......
  • nginx升级
    nginx升级升级背景:Nginx是一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。Nginx存在漏洞,该漏洞允许攻击者从DNS服务器伪造UDP数据包造成1-byte的内......
  • Nginx
    Nginx反向代理反向代理:请求ip80转发到ip8080;根据访问的路径跳转到不同端口的服务中。Nginx负载均衡分配服务器策略1、轮询(默认)每个请求按时间顺序逐一分配到不同的后......
  • goaccess-nginx
    GoAccessgoaccess-快速网络日志分析器和交互式查看器。描述:goaccess是一个免费的(MIT许可)和开源实时网络日志分析器和交互式查看器,可以在*nix系统中的终端或通过浏......
  • nginx ngx_http_addition_module 模块openresty content_by_lua 不能生效的原因
    nginx的ngx_http_addition_module模块也是一个修改content的好东西,对于openresty我们经常使用content_by_lua阶段处理但是经过分析ngx_http_addition_module源码的......
  • 教你如何在云服务器上安装并配置web服务器(这里以nginx服务器为例,操作系统linux)
    前言:这里以gitbash工具为例,当然你可以直接用puTTY或者Xshell链接到服务器,用FileZilla上传文件。一、连接服务器sshroot@你的远程ip地址。二、查看版本uname-a三......
  • nginx环境下配置https域名你知道吗?
    拿到的证书分两个文件,一个是xxx.crt,一个是xxx.key,分别对应公钥和私钥。1.假设我们的nginx安装目录是:/etc/nginx/,在目录下创建一个新目录,姑且命名为cert,把两个证书文件扔到......