本篇目录

1. nginx是什么?
2. nginx有什么用?
3. nginx怎么用?
4. nginx使用过程中的注意事项?
5. 对于nginx使用的一些个人理解

1. nginx是什么?

 nginx是一款高性能的http和反向代理服务器;它是一款开源、低耗、并发能力特别强的代理服务器,在高并发型Web应用中使用广泛;具有关测试显示,nginx可以同时支持高达50000个并发连接数的响应;

2. nginx有什么用?

 nginx常用的功能有:反向代理、负载均衡、动静分离;

2.1 反向代理

     在进行反向代理理解之前,先对正向代理产生理解,会有更好的过度作用;正向代理:当我们访问外国网站时,速度常常会很慢。这个时候我们可以在自己与国外服务器之间选择一台代理服务器进而加快自己的访问速度;在选择代理服务器时,用户需要自己手动在浏览器中进行一些配置。这个时候我们可以理解为正向代理的过程用户是有感知的;反向代理:对于反向代理的理解,我们可以依托正向代理的例子。此时我们可以把nginx作为上述正向代理中的那台代理服务器。但是好处在于nginx是开发人员部署的,不需要用户手动在浏览器中进行配置;此时,当我们再次访问外国网站时可以不用进行任何配置就可以加快访问速度。可以理解为这个过程用户是无感知的;通常,反向代理和负载均衡是相辅相成的,比如说,我们在浏览器地址栏中输入了:https://47.90.78.128:9000;通常我们会认为这个就是Web应用部署的服务器IP和对应端口号,但是使用了nginx之后,也许这个地址+端口号就不再是真实的Web应用部署的服务器IP和对应端口号了;但它常常是nginx所监听的IP地址+端口号,当我们在浏览器中输入这段URL后,nginx会自动监听到这个请求然后进行服务的转发;以上我们默认Web应用部署的服务器只有一台,所以可以直接转发,但是当我们有10台 20台服务器之后就不是这么简单了,这个时候就会使用到nginx的负载均衡功能;所以说在使用反向代理+负载均衡进行结合的时候,开发者给用户看到的只是一个nginx的URL(冰山一角),而nginx之后也许是一个服务器的集群(而且它们通常是放在防火墙后面的,这样安全性也会大大增加);开发者在这个集群中干任何事情用户都是无感知的。同时nginx也支持热部署和7X24不间断运行,可以连续几个月一直干活。几乎不需要维护;

2.2 负载均衡

     我们接着上面的节点继续理解,当我们有20甚至30台之后,我们如何进行请求的响应呢?此时就需要应用nginx的负载均衡技术,也就是说当我们继续在浏览器中输入https://47.90.78.128:9000这个URL后,nginx会进行负载均衡;把这个请求按照一定的规则转发到对应的Web应用部署服务器上去,但是这个规则不能是随意的,因为在服务器之间,session是不能共享的;如果出现了第一次转发到1号,第二次转发到5号服务器上这种情况就会出现很大的问题;这次nginx官方给出了轮询、加权轮询、IPHASH这几种规则;轮询:nginx会做到尽最大可能的均匀转发。平均下来就是每台服务器响应的次数是一致的;加权轮询:如果5号服务器硬件比较强势,我们可以让它多干一些活,利用weight标签就可以给5号服务器增加一些权重;IPHASH:nginx会根据客户端请求的IP地址进行一个换算,然后利用换算结果映射到对应的服务器上去,这样也可以解决session共享问题,因为IP地址最基本也是在一段时间内是固定的;

2.3 动静分离

     在Web应用中,会分为静态资源和动态资源。此处我们做一个简单理解,我们把需要访问数据库才可以得到的理解为动态,其他都是静态;常用的静态有css js image。我们可以把项目中的静态资源和动态资源进行分开部署。当请求静态资源时nginx会自动转发到静态资源服务器中去;其中有一个很重要的点是nginx可以设置这些个静态资源的缓存时间,这样当出现静态资源量大且用户二次访问的时候,可以提高很大一部分效率;

3. nginx怎么用?

 在nginx所有功能点的使用中,只需要在nginx.conf文件中进行配置就可以完成;nginx的用法可以分为nginx安装、nginx配置这两个部分来说;

3.1 nginx的安装

     因为nginx是服务器端应用,所以通常是在linux操作系统上进行安装的,但是它也有windows版本,此处我们只进行linux上的安装;yum安装:https://blog.csdn.net/qq_42815754/article/details/82980326?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163748253516780274197010%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163748253516780274197010&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-82980326.first_rank_v2_pc_rank_v29&utm_term=nginx%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187源码安装:https://blog.csdn.net/qq_33454884/article/details/89212702?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163748253516780274197010%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163748253516780274197010&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-89212702.first_rank_v2_pc_rank_v29&utm_term=nginx%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187nginx安装完成之后就是使用了,接下来需要学习的是nginx的常用命令;

3.2 nginx的配置

3.2.1 nginx的常用命令

     因为是在linux上使用,所以这里我们也只介绍linux上的命令;以下这些命令都需要在nginx安装目录下的sbin中使用;启动:./nginx正常退出:./nginx -s quit(它会将nginx进程一个一个的关闭掉,效率低)强制关闭:./nginx -s stop(一下子干掉所有nginx进程,效率高)重新加载配置文件:./nginx -s reload通常情况下的使用策略是:改动nginx.conf文件 -》 ./nginx -》 ./nginx -s stop -》 改动nginx.conf。形成这样的循环;因为几乎所有的操作都是对于nginx.conf这个配置文件的改动,所以我们一定理解它配置文件的结构;

3.2.2 nginx.conf的结构

     worker_processes  1; # 对,你并没有看错。全局块没有被花括号包含;events {}http {server {location / {}location = {}}server {location / {}location = {}}}总体来说,nginx的配置文件核心部分就是长这个样子。它分为三部分,分别是:全局块、events块、http块;全局块:这里面通常会配置日志文件的存放位置,以及用户组和主进程数;events块:这里通常配置的是网络连接数。也就是指每一个master(主进程)可以承载多少网络连接数;http块:这里面配置最多的就是反向代理的内容。其中一个http块可以包含多个server块,而一个server块又可以包含多个location块;通常情况下,我们改动的都是的http块中的内容;

3.2.3 反向代理使用实例

     # 这里指定了nginx主进程数。如果为auto,就由nginx自身来匹配个数。如果特别想指定个数,那最好和服务器CPU数保持一致(但官方推荐auto);worker_processes  auto;pid  /usr/local/nginx/logs/nginx.pid;events {# 这里限定了nginx的工作模式为epoll(centos中最高效的方式);use epoll;# 这里指定了nginx每个主进程的最大网络连接数;worker_connections  65536;}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# 配置HTTPS请求;server {# 监听的端口号;listen       8445 ssl;# 监听的IP地址;server_name  47.110.35.243;# 配置SSL证书的路径;ssl_certificate      /usr/local/nginx/cert/server.crt;ssl_certificate_key  /usr/local/nginx/cert/server.key;ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;# 反向代理;location / {proxy_pass https://172.16.240.53:18445;}# 限定状态码指向页面(这里指向的页面,默认都在nginx安装目录下的html中存储着);error_page 503 404 /50x.html;location = /50x.html {root html;}}# 通过以上的HTTPS配置可以达到的目标是,当我们访问https://47.110.35.243:8445时,nginx会监听到此次的请求;# 然后把这个请求转发到真正的请求路径中去,也就是指https://172.16.240.53:18445;# 配置HTTP请求;server {listen       8444;server_name  47.110.35.243;# 反向代理;location / {proxy_pass http://13.48.46.96:8445;}}}# 负载均衡和动静分离属于进阶篇的内容。但是也都是在nginx.conf中进行一些配置。通过这里的分析,肯定可以自己上手进行搜索解决的;

4. nginx使用过程中的注意事项?

 4.1 改完配置文件一定要关闭 重启nginx,否则结果会很意外;4.2 每一项配置后面都要加分号,这点很重要;

5. 对于nginx使用的一些个人理解

 5.1 针对nginx的基本使用,我认为只有两个步骤,安装和改nginx.conf;

nginx入门-个人总结相关推荐

  1. Linux之nginx入门

    nginx入门 详见可参考:https://www.cnblogs.com/tiger666/p/10239307.html?tdsourcetag=s_pctim_aiomsg 1. 常用的WEB框 ...

  2. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...

  3. nginx 启动命令_Nginx实战001:Window中配置使用Nginx入门

    什么是Nginx Nginx是一款灵活.稳定.高效.低消耗的轻量级Web服务器,支持HTTP和反向代理及电子邮件(IMAP/POP3/SMTP)等服务.它具的高性能.高并发.低内存消耗及开源免费让深受 ...

  4. Nginx 入门指南

    Nginx 入门指南 简介: Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强.本教程根据淘宝核心系统服务器平台组的 ...

  5. Nginx教程(一) Nginx入门教程

    Nginx教程(一) Nginx入门教程 1 Nginx入门教程 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.由 ...

  6. Nginx入门和使用

    Nginx入门 基础 https://blog.csdn.net/weixin_40792878/article/details/83316519 快速入门 Nginx 是一个高性能的 HTTP 和反 ...

  7. Nginx入门笔记之————配置文件结构

    在nginx.conf的注释符号位# nginx文件的结构,这个对刚入门的同学,可以多看两眼. 默认的config: #user nobody; worker_processes 1;#error_l ...

  8. 最全面 Nginx 入门教程 + 常用配置解析

    http://blog.csdn.net/shootyou/article/details/6093562 个人整理资料,转帖注明出处,谢谢~ Nginx介绍和安装 一个简单的配置文件 模块介绍 常用 ...

  9. nginx指定配置文件启动_【第1717期】Nginx入门指南

    前言 Nginx有在部署早读课网站的时候用到,平时用的不多,又是一个可以顺便了解的知识点.那个@李晓云,这篇是你想了解的吗?今日早读文章由@慕小白翻译分享. 正文从这开始-- 这份指南是对nginx的 ...

  10. Nginx入门与实践

    文章目录 1.基本介绍 1.1 Nginx概述 1.2 正向代理 1.3 反向代理 1.4 负载均衡 1.5 动静分离 2. Nginx的安装 3.Nginx的常用命令 4.Nginx的配置文件 4. ...

最新文章

  1. python爬虫完整实例-Python爬虫 实例
  2. Qt中向单元格中写入日期数据
  3. UA MATH564 概率论 QE练习 Glivenko–Cantelli定理
  4. 【控制】蚁群算法(ACO,Ant Colony Optimization)及 Matlab 实现
  5. QLibrary Class Reference(qt加载外部库)
  6. 多媒体(1):MCI接口编程
  7. Android Binder机制学习笔记
  8. Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)
  9. [vue] vue组件里写的原生addEventListeners监听事件,要手动去销毁吗?为什么?
  10. 区块链开发(二)以太坊客户端基本操作命令
  11. 商品列表,添加,显示
  12. 各大厂面试云集的《520道LeetCode题Java版答案》
  13. PCM音量控制(高级篇)
  14. android 加载动画下载,AVLoadingIndicatorView
  15. 工商银行历年考试真题 银行校园招聘考试笔试资料
  16. 多个服务器数据互通_8月6日部分服务器数据互通公告!
  17. 浏览器标准模式和怪异模式之间的区别是什么?
  18. CF1060F Shrinking Tree
  19. Kubuntu samba安装
  20. iOS越狱过程:越狱工具做了什么事情?( iOS系统结构、常见的二进制文件类型)

热门文章

  1. android graphview使用
  2. xp下硬盘安装Ubuntu Kylin 14.04
  3. OSX的一些基本知识
  4. Kalman滤波器从原理到实现
  5. PySide2与PyQt5区别
  6. x86汇编_CALL和RET指令及过程调用嵌套_笔记_20
  7. matlab6.0哪一年,MATLAB版本与年份间的对应关系
  8. mybatisSql编写小结
  9. 做培训直播时,企业还要做好社群运营
  10. Tennessee Eastman(TE过程)简介