文章目录

  • 介绍
    • 正向代理和反向代理、负载均衡(Http服务器)
    • 动静态资源分离
    • 优点
  • Nginx的安装
    • 1 Linux安装
    • 2 Mac OS的安装
    • 3 Windows下的安装
  • 常用命令
  • 配置
    • 语法
    • 静态资源页面
    • 配置解释
  • 搭建一个静态文件的nginx服务的配置文件

介绍

Nginx是有俄罗斯人伊戈尔·赛索耶夫(Igor Sysoev)为俄罗斯访问量第二的rambler.ru站点开发的轻量级Web服务器,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Nginx是优秀的代理服务器和负载均衡服务器;在安装配置上,Nginx安装简单、配置灵活。

正向代理和反向代理、负载均衡(Http服务器)

正向代理

正向:客户端对服务器来说不可见
正向代理也可以理解为客户端代理,Nginx代替客户端向明确的服务器发送请求,对于服务器来说客户端完全透明。如上图所示,客户机数量的多少不重要,重要的是客户机一定是知道将要访问的是哪台服务器。而且代理服务器是可以不知道客户机要访问哪里的,代理服务器可以从客户机的请求中解析出目标服务器的地址。

在生活中很多场景都可以形象的展现正向代理的例子。比如客户去某品牌专卖店购物,在客户购买产品这个过程中,专卖店就是个代理的角色。对于客户而言,客户明确指明了购买哪个厂家的具体哪个产品,专卖店需要明确的去这个厂家取货就可以了。上述这样的代理模式称为正向代理。

在软件应用的场景来说FQ最能体现这个正向代理模式。正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理
反向:服务端对客户端来说不可见(缓存、负载均衡)
反向代理也可以理解为服务端代理,Nginx代理服务器为客户端提供服务,对应客户端来说服务端完全透明。如上图所示,服务器数量的多少不重要,重要的代理服务器需要知道所有应用服务器的信息,并且给客户机提供服务的服务器最终是由代理服务器分配实现的。
在生活中也有很多场景可以形象的展现方向代理的例子。我们以海外代购为例,客户告诉代购人需要某件产品,代购人出国后就去各个店铺挑选客户需要的产品,最终交给客户时客户是完全不知道自己的产品是来自哪家店铺。也就是说在这个过程中对于客户端而言店铺完全透明。这样的代理模式就称为反向代理。
在软件应用场景来说负载均衡最能体现反向代理模式。反向代理最大的特点是客户端并不知道具体要访问的服务器地址,最终由哪个服务器提供服务有反向代理服务来决定。反向代理模式屏蔽或者隐藏了真实的服务端信息。

负载均衡
Nginx就是性能非常好的反向代理服务器,用来做负载均衡。什么是负载均衡呢?负载均衡,英文名称为Load Balance,就是原本由一个人来说的工作,分散到了很多人身上,让大家都可以很轻松的完成工作。由于Nginx反向代理服务器转发请求在HTTP协议层面,因此通过Nginx实现的负载均衡也叫应用层负载均衡。优点是部署简单,网络的依赖非常小,并发能力高(5w次,一般服务器也有2K次的并发),通过端口检测到服务器内部的故障,缺点是不支持URL来检测,session的保持和cookie的引导能力欠缺。

动静态资源分离

优点

Nginx的安装

1 Linux安装

登录root账号

执行yum install yum-utils

运行vim /etc/yum.repos.d/nginx.repo

输入:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$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/7/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

然后查看源
yum list | grep nginx

看到存在稳定版的源,确认无误。

运行安装命令
yum install nginx 1:1.16.1-1.el7.ngx

过程中输入y,确认

查看版本,若出现版本号,则安装成功

nginx -v

用whereis nginx可以查看到目录:

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

2 Mac OS的安装

安装homebrew,然后nginx使用安装brew:

$ brew install nginx

笔记:

nginx的配置文件位于中/usr/local/etc/nginx/nginx.conf。

要编辑配置文件或运行nginx,您需要使用sudo: sudo nano /usr/local/etc/nginx/nginx.conf和 sudo nginx …

3 Windows下的安装

不推荐,nginx不适合运行在Windows上,功能不完整,我们尽量运行在linux上。

常用命令

//停止docker版的干扰//默认启动
/usr/sbin/nginx//验证是否启动
ps -aux | grep nginx
//连续启动会提示(端口占用)
/usr/sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)//帮助
[root@hadoop01 ~]# nginx -h
nginx version: nginx/1.18.0
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]Options:-?,-h         : this help-v            : show version and exit-V            : show version and configure options then exit-t            : test configuration and exit-T            : test configuration, dump it and exit-q            : suppress non-error messages during configuration testing-s signal     : send signal to a master process: stop, quit, reopen, reload-p prefix     : set prefix path (default: /etc/nginx/)-c filename   : set configuration file (default: /etc/nginx/nginx.conf)-g directives : set global directives out of configuration file//停止
[root@hadoop01 ~]# nginx -s stop
[root@hadoop01 ~]# ps -aux | grep nginx
root      42979  0.0  0.0 112824   980 pts/1    R+   15:11   0:00 grep --color=auto nginx//指定配置文件运行
[root@hadoop01 ~]# nginx -c /etc/nginx/nginx.conf
[root@hadoop01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful//查看版本
[root@hadoop01 ~]# nginx -v
//查看配置路径
nginx version: nginx/1.18.0
[root@hadoop01 ~]# nginx -V
[root@hadoop01 ~]# ps -aux | grep nginx

-s 信号

配置

语法

;结尾
{}组织多条指令
include引入
#注释
$变量

静态资源页面

vi /usr/share/nginx/html/index.html

配置解释

nginx.conf配置文件讲解
首先我们进入到cd etc/nginx.然后通过ls查看nginx目录的相关内容。在nginx目录下,我们需要关注nginx.conf文件,这个文件是我们的主配置文件,cat打开:
cat nginx.conf# 运行用户,默认是nginx
user  nginx;
# nginx进程数,一般设置为和cpu核数一样
worker_processes  1;# 全局错误日志路径
error_log  /var/log/nginx/error.log warn;
# 进程pid路径
pid        /var/run/nginx.pid;events {# 最大连接数worker_connections  1024;
}# 设置http服务器
http {include       /etc/nginx/mime.types;default_type  application/octet-stream;
# 设置日志的格式log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
# 访问日志的路径access_log  /var/log/nginx/access.log  main;# 开启高效传输模式sendfile        on;#tcp_nopush     on;
# 长连接超时时间,单位是秒keepalive_timeout  65;
#传输时是否压缩,压缩的话需要解压,但是传的大小就小了#gzip  on;
#加载其他的配置文件,一带多include /etc/nginx/conf.d/*.conf;
}

搭建一个静态文件的nginx服务的配置文件

配置文件:

server {listen       80;server_name  localhost;access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/web/;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}

【Ngnix】Ngnix应用相关推荐

  1. 详解基于busybox、dropbear、ngnix制作完整的嵌入式Linux系统

    说明:         <一>:查看此博文,建议查看笔者上一篇博文(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更 ...

  2. linux下彻底杀死ngnix进程方法

    我们经常会在linux下启动web项目的时候,发现地址总是被占用,后来发现有个鬼玩意在搞事情--nginx 如果ps -ef | grep ngnix 后,在kill -QUIT process_id ...

  3. ngnix编译遇到的问题.

    总结:先后遇到libz库文件没有正确的链接和pcre库文件没有正确的链接 1./configure后提示需要zlib 2.locate zlib,系统中没有zlib的共享库so文件,但是有一些头文件, ...

  4. 解决ngnix服务器上的Discuz!x2.5 Upload Error:413错误

    1.修改php.ini sudo nano /etc/php5/fpm/php.ini #打开php.ini找到并修改以下的参数,目的是修改上传限制 max_execution_time = 900 ...

  5. asp.net 在 Ngnix 服务器 中配置攻略

    Ngnix 是一个高性能的 Web 服务器 和 反向代理服务器,也可以作为负载均衡服务器:功能如此强大,性能非常优秀,天生就是天之骄子,一经出世就走上神坛,开始了一段叱咤风云的不归路. 一直在微软的阵 ...

  6. Ngnix负载均衡安装及配置

    1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5 ...

  7. ngnix+keepalived 实现N主高可用负载均衡web群集

    ngnix+keepalived 实现N主高可用负载均衡web群集 思路: 总结一下最近学习的nginx+keepalived 的负载均衡架构,发现linux的群集系统都是负载均衡层加服务器群组层,实 ...

  8. ngnix服务器搭建

    1.  到nginx官网上下载相应的安装包,http://nginx.org/en/download.html:下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在了d盘根目录下,如下图 ...

  9. 在Ngnix上部署Flask应用

    <Flask项目支持https>这一篇介绍的是在Flask自带server上添加SSL,毕竟不适合用于生产环境.本篇介绍适用于生产环境的Flask+SSL部署方法,需要借助Ngnix. F ...

  10. Windows上部署Ngnix

    本来对Ngnix这个"反向代理"服务的认识是"不明觉厉",没想到部署起来比Apache还简单. 1.下载 直接去Ngnix官网下载安装包,注意Ngnix官网分成 ...

最新文章

  1. linux内核生成img,linux内核探索:定制自己的initrd.img-转载并修改
  2. android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)
  3. 软件设计思维:软件应该可以增大可以减小
  4. python 构造函数继承_Python多重继承的异构构造器
  5. 背包问题(nyoj106)
  6. 使用vs2008搭建php扩展环境
  7. Anaconda, conda, pyenv, virtualenv的区别
  8. 如何制作poster以及下载poster模板
  9. 内网服务器做了映射还是无法用公网访问,内网PC无法使用服务器NAT映射后的公网地址访问服务器的故障分析...
  10. Flash8-动态显示汉字乱码问题的解决
  11. Linux各个发行版镜像下载
  12. Android OTG 读写U盘文件
  13. 解决Xstream中解析报文出现Cannot parse date的异常问题
  14. AR涂涂乐⭐六、 UGUI精灵格式、自动延迟截图、优化“4”、移出扫描框终止截图进程
  15. 基于Spring Boot 2 和 Vue.js 2 的 食品科学与工程学院网站的设计与实现
  16. 【密码学RSA】rsa_p高位泄露(2021四川省数字创新赛题)
  17. vray许可服务器信息无名,【1人回答】vray3.6无法获取许可-3D溜溜网
  18. linux服务器创建用户
  19. Tesseract-OCR安装与使用
  20. Linux环境部署Node.js

热门文章

  1. phpexcel的读取和导出
  2. dto 转换为Do 工具类
  3. 服务器 消息 22029,解决SQL Server数据库维护计划失败的问题
  4. 李笑来《财富自由之路》读书笔记(Ⅰ)
  5. 【程序员的财富自由之路】开篇序
  6. 8.0强行转换后变成了7_干货|从中式英语,到雅思听力8.0,外研社英语演讲省一,非英专的她做了这些...
  7. cuda pytorch 环境变量_Windows10+CUDA 10.1.0+pytorch安装过程
  8. 收藏这些网站,找PPT设计素材不再发犯难(图标、信息图、配色、免版权免费图片)...
  9. 培训人要转型?先回答这6个问题
  10. 51 Node 大鱼吃小鱼(栈水题)