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都匹配不上的时候才有效果。如果匹配上就不生效。