nginx(二)

本文涉及的产品
.cn 域名,1个 12个月
简介: nginx(二)

1、在Linux中,curl命令,用来做网络请求的,可以返回整个html的内容:

2、当我们把nginx安装成功的话:启动nginx的时候是默认按照nginx.conf文件来启动的,查看进程时可以看到一个master和一个worker的进程,有点类似于netty中的线程模型,这个nginx也是用epoll模型做的。

3、nginx相关的命令:

如果启动时不用默认的配置,想要自己的配置的话:./nginx -c:指定配置文件的位置

eg:./nginx -c /usr/local/conf/nginx.conf

./nginx -s stop :停止: 

./nginx  -s  quit :退出

/nginx  -s  reload :重新加载将新的配置信息重新加载到nginx里面去,优雅的去刷新nginx的配置文件,很常用。

/nginx -s:发送 对应信号处理master进程  常用的是reload,stop

./nginx -v:nginx的版本

./nginx -V:可以查看nginx的内核的版本:

./nginx   -t:验证 配置文件nginx.conf是正确的


注意,如果找不到nginx安装的位置,但是想要退出,可以选用下面的命令:

kill -QUIT:会禁止进来的所有的请求,它会等待未执行完的请求之后才会正式的退出这个线程。

kill- 9:很暴力。

kill -TERM :和kill -9是一个意思

二、nginx的配置文件

nginx的配置文件总共分为4个部分。nginx做项目的时候肯定把nginx.conf分成很多个配置文件的,因为一个nginx下面有很多个域名,不止一个,后面会根据不同的配置文件来区分域名。

我的本机nginx配置文件路径是  /usr/local/nginx/conf/ 这个目录下面,其中nginx.conf是主配置文件。Nginx.conf配置文件主要分成四个部分:

  • main (全局设置) 。可以设置一些全局的变量
  • sever (虚拟主机设置)。
  • upstream负载均衡服务器设置
  • location(URL匹配特定位置的设置)。

main部分设置的命令将影响其他所有设置。server 部分的命令主要用于指定主机和端口;。upstream命令主要用于负载均衡,设置一系列的后端服务器。location 部分用于匹配网页位置。这四者之间的关系是server继承main, location 继承server, upstream 既不会继承其他设置也不会被继承。在这四个部分当中,每个部分都包含若干命令,这些命令主要包含Nginx的主模块命令,事件模块命令,HTTP核心模块命令,同时每个部分还可以使用其他HTTP模块命令(例如HTTP SSL模块,HttpGzip Static模块和Http Addition模块等)。

首先看下 location /:/:代表的是根目录。代表当前服务器的根目录。在根目录去找html。也就是说nginx安装的目录,去查找html的这样的文件夹50x.html和index.html,80端口是默认浏览器访问的端口

4、如何去在在主机上访问虚拟机里的nginx呢?

步骤如下:

Ⅰ、需要把80端口永久放行

Ⅱ、然后在浏览器上去访问:

Ⅲ、然后在本机的hosts文件下,可以配置下域名和ip的映射,然后可以就用域名访问了:


如果访问的是/50x.html那么也会定位到下面的html去:这就是错误页面

5、server的配置:

Ⅰ、基于域名的配置:这时需要在nginx的安装目录下创建weizhaoyang/html/index.html

Ⅱ、基于端口号的虚拟主机配置

提问下:如何实现多个IP地址指向一台虚拟主机?

使用一台主机,一张网卡,来使用多个ip地址去操作一张网卡,这张网卡可以提供三个ip地址这三个ip地址是一台机器的ip地址的一个副本,就是一个别名,实际这个别名就是个Ip。

ens33是个网卡,首先段时241段,子网掩码是255.255.255.0,broadcast:广播的段。现在针对这个ip地址定义两个别名,添加网卡的路由的规则如下:

上面的两个网卡是ens33的虚拟网卡。只是ens33的快捷方式一样,这就是一张网卡上虚拟出两张网卡,虚拟网卡指向物理网卡。

然后用windws系统可以去ping下上面的虚拟网卡:

Ⅲ、基于IP的配置(不怎么用)


这相当于是跳板。这就是防止真实的ip地址给暴漏出来。防止服务器被攻击,这种的配置一旦机器关掉以后,这种虚拟的ip就会消失。

如果想永久的话


在上面的文件里面加入相应得配置信息,在Linux中的软连接就是快捷方式。

三、nginx中server_name的匹配顺序:

前提:安装打印字符串的模块:安装:echo-nginx-module

下载  https://github.com/openresty/echo-nginx-module并解压到服务器上

重新安装nginx的话不会覆盖原有的nginx的信息。

Ⅰ、最高优先级:完全匹配

首先在虚拟机中的etc/hosts文件下创建域名与127.0.0.1映射的路径:

然后在nginx.conf中创建两个server,1个完全匹配,1个通配符匹配,通配符server放在最前,以证明完全匹配的优先级与配置顺序无关:

总结:意思就是能够完全匹配上的话完全匹配的优先级高,如果没有完全匹配的话,就选择通配的方式去匹配。选择通配符在前。

第二优先级:通配符在前

符在后:第三优先级:\w:代表的是a-z,A-Z,0-9之间的字符,+:代表这里可以出现很多的这类的字符。

. 是一个特殊的符号,所以这里要转义。^:以什么开始

$:以什么结尾,在nginx里面如果想要用正则表达式的话必须使用~在前面放着

~:代表使用正则表达式   *:忽略大小写去匹配。

listen 配置项中default的影响

1、这时如果server_name:完全匹配不上的话,会找端口去匹配,如果都是80端口的话,它会去找带defalut的,定位的时候不会去查server_name,不会去管server_name是啥了。

2、defualt关键字在所有server段下面的server_name都匹配不上的时候才有效果。如果匹配上就不生效。

相关文章
|
6月前
|
缓存 负载均衡 算法
Nginx问题汇总
Nginx问题汇总
58 0
|
负载均衡 应用服务中间件 nginx
|
应用服务中间件 Apache 开发工具
关于Nginx,你需要知道的!
关于Nginx,你需要知道的!
189 0
|
负载均衡 应用服务中间件 Linux
|
缓存 负载均衡 前端开发
|
Web App开发 负载均衡 前端开发
nginx使用分享
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。Nginx的并发能力在同类型的Web服务器中表现优异,国内主流无论大小互联网公司都在用。
610 0
nginx使用分享
|
应用服务中间件 开发工具 nginx
Nginx之15独孤九剑 - (GoogleFilter)
Nginx从入门到深入之Google Proxy
1074 0
|
Web App开发 前端开发 应用服务中间件
|
Unix 应用服务中间件 PHP
|
应用服务中间件 PHP nginx