Nginx 学习笔记总结

Posted IT_Holmes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 学习笔记总结相关的知识,希望对你有一定的参考价值。

文章目录

1. 在开发中,nginx担任什么角色?


平时我们写过的小项目,一般都是一个客户端+一台服务器(开启这tomcat)这样的形式,一般都是在并发量小,用户使用的少的情况下。

如果用户联不断的增加,并发量不断的增大,那么一台服务器就无法满足需求。


所以我们又横向拓展服务器,但是横向拓展服务器无法让客户端按照某种格式来进行合理的访问每一台服务器。所以中间又加了一层,专门来进行反向代理等等操作的服务器,这台服务器就是nginx。

架构思维有一个不变的理论:没有什么是加一层解决不了的问题。

2. 什么是Nginx?


3. Nginx功能 之 反向代理

3.1 什么是正向代理?


正向代理,就是代理客户端来访问服务器的。

3.2 什么是反向代理?


与正向代理相反,正向代理是代理客户端的,而反向代理就是代理服务器的。

3. Nginx功能 之 负载均衡


Nginx提供的负载均衡策略有两种:内置策略和扩展策略。

内置策略有:

  • 轮询(默认)
  • 加权轮询
  • Iphash绑定

轮询:


加权轮询:


iphash是对客户端请求的ip进行一个hash操作,可以说是固定的ip进入固定的tomcat服务器,这种方式可以解决session不共享的问题,但是性能低一些,如果一台服务器宕机了,那么这个对应网段的ip就没法访问了。

4. Nginx功能 之 动静分离


动静分离:在我们软件开发中,有些请求是需要后台处理,而有些静态资源时不需要后台来处理的。这些静态资源文件,直接将它放到nginx系统的本地。这样来实现动静分离。

5. Nginx安装

5.1 window安装


去官方下载,一般下载就是下载稳定版本。

下载后,放到一个没有中文的路径下面,解压出来。找到nginx.conf文件,可以配置端口号。



5.2 linux安装


首先,确保本机上没有nginx!使用whereis nginx命令查找。
(whereis命令用于查找文件。)


第一步:下载nginx的linux版本的解压包。


第二步:tar -zxvf 命令解压文件。


第三步:依次执行./configure , make命令和make install命令:

linux编译安装中configure、make和make install各自的作用:

  • ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。


  • make是用来编译的,它从Makefile中读取指令,然后编译。

  • make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

第四步:安装完成后,默认就放到了 /user/local/nginx下面。

  • 我们可以去/user/local/nginx/sbin下面去执行,sbin目录默认就是放置启动文件的。

当我在sbin目录下,执行./nginx 启动时,遇到错误:

原因很简单就是端口被占用了,去nginx.conf配置个别的端口,或者把当前端口的进程kill一下。。

启动成功后,nginx是没有任何提示的。

通过访问ip:端口查看到welcome就安装成功了:


启动成功后,我们可以使用linux命令的netstat命令查看端口情况:

  • Linux netstat 命令用于显示网络状态。利用 netstat 指令可让你得知整个 Linux 系统的网络情况。
  • 可以通过netstat -anp 或 netstat -nlp 来查看哪些端口被打开。(注:加参数’-n’会将应用程序转为端口显示,即数字格式的地址)

参数:

  • -a或–all 显示所有连线中的Socket。
  • -n或–numeric 直接使用IP地址,而不通过域名服务器。
  • -p或–programs 显示正在使用Socket的程序识别码和程序名称。
  • -l或–listening 显示监控中的服务器的Socket。

    (注意防火墙和云服务器的安全规则。)

6. Nginx命令


在 /user/local/nginx/sbin目录下,执行以下命令:

  • ./nginx 启动nginx命令。
  • ./nginx -s stop 停止nginx命令。
  • ./nginx -s quit 安全退出nging命令。
  • ./nginx -s reload 重新加载配置文件命令。

7. Nginx 实战演示

7.1 启动多台tomcat服务器


首先,我在我的云服务器上面,启动了三台tomcat服务器。

搭建的时候注意的几个事项:

  • 三台服务器的shutdown端口和访问入口端口,必须不能相同!!!
  • 云服务器要配置安全规则。
  • 如果tomcat启动不起来或者报错,可以去log文件下的catalina.xxx.log文件查看错误。

7.2 Nginx配置的详解


打开nginx.conf文件:

完成上面这些步骤,就已经实现了一个nginx反向代理的效果。

当我访问nginx的ip和对应端口(一般是80)就能访问到三台tomcat中的一台了。

以上是关于Nginx 学习笔记总结的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 学习笔记总结

图像识别-经典网络学习总结

Tomcat和Servlet的学习笔记总结

Nginx学习笔记~目录索引

Andrew Ng 机器学习课程笔记 ———— 通过初步的神经网络实现手写数字的识别(尽力去向量化实现)

斯坦福大学Andrew Ng - 机器学习笔记 -- 推荐系统 & 大规模机器学习 & 图片文字识别