【Nginx】基础知识及常用命令

发布时间:2023年12月28日

一、nginx常用命令(ubuntu)

cd 目录 : 转换目录

ls : 查看当前目录下的文件(不包括隐藏文件)

ll : 查看当前目录下的所有文件(包括隐藏文件)

nginx -V : 查看各种文件的目录

nginx -t : 检查配置文件是否存在问题

sudo systemctl restart nginx : 重新启动nginx

sudo systemctl status nginx : 查看nginx状态

nginx -s reload : 重新加载配置文件

nginx -s reopen : 重新打开配置文件

nginx -s quit : 优雅停止

nginx -s stop : 立即停止

pass掉进程??:kill -9 端口号

ps aux | grep nginx : 查看进程

service nginx stop : 停止nginx

curl localhost : 看是否能连接到80端口

二、不同系统下的安装命令

1、linux

sudo apt update

sudo apt install nginx

2、IOS

brew install nginx

3、Windows

scoop install nginx

choco install nginx

4、其他安装方式

上面是包管理方式,也可以源码编译安装,比较灵活,但麻烦(可能会出现各种编译错误)

也可以用docter安装

docker pull nginx

三、master进程和worker进程

1、master进程负责管理worker进程

2、worker进程负责处理请求

3、pid即进程id,通过【ps aux | grep nginx】命令查看进程id

4、端口,通过【lsof】命令查看端口占用情况 ?【lsof -s:80】表示只查看80端口

5、服务启动之后通过【nginx -s signal】命令来停止或重启服务 siginal具体内容如下

【signal----------quit】:优雅停止

【signal----------stop】:立即停止

【signal----------reload】:重新加载配置文件

【signal----------reopen】:重新打开配置文件

四、页面显示原理

1、访问localhost:80显示的默认页面是由nginx.conf配置文件server中location中配置的

/ 的意思 ?输入localhost时(即找根目录) 会自动匹配到这个location下的内容,然后去找这个目录中html文件夹中的index.html

root是一个相对路径,是相对与nginx安装目录来说的

2、【nginx -V】 (这个是大写的v)命令可以查看安装目录、编译参数、配置文件、日志文件等各种信息

3、用nginx -t来快速查看配置文件是否正确,不正确的话会显示错误信息

4、配置文件修改后需要在nginx目录下用【nginx -s reload】命令重新加载配置文件

五、配置文件介绍

1、主要分为三部分

(1)全局块

全局配置(主配置),定义nginx

(2)events块

服务器和客户端之间的网络配置、网络io模型等

如:worker_connections 768; ??????每个进程可以同时接收多少(这里是786个)个网络连接

(3)http块

  • 修改最频繁的地方,向虚拟主机、反向代理、负载均衡都在这里配置
  • 可以包含很多server块,又叫做虚拟主机
  • 最下面一行有一个 include server/* 意思是把servers目录下的所有配置文件都包含进来,这样就可以把每个虚拟主机的配置文件放到一个单独的文件里面
  • include指令也可以包含其他的配置文件
  • include mine.type 根据mine.type文件里面的配置判断文件类型的

2、 反向代理配置

(1)添加【upstream backend{}】配置用于反向代理(与server同级)

backend仅仅是一个名字,可以随便取

(2)里面的内容是需要被代理的服务器的配置

(3)然后在server模块中添加一个location配置

如下面的配置,把以app开头的请求都被带路到上面的配置之中

注意proxy_pass后面的地址要和刚刚起的名字要相同(里面的backend,绿色标注)

(4)上面的三个服务默认论循处理请求,但也可以通过权重来调整负载均衡的策略weight权重越大被分配到的请求越多,下来图片中表示第一个服务是后面两个的三倍

(5)也可以根据客户的ip地址来进行哈希,同一个客户端的请求就会被分配到同一个服务器上

3、https协议

(1)http协议的默认端口为80

(2)而https协议的默认端口为443,https协议需要用到SSL证书,在主流云平台可以免费申请,申请后可以拿到密钥文件和证书文件

(3)也可以自己生成自签名证书

生成私钥文件(private key)
????????openssl genrsa -out private.key 2048
根据私钥生成证书签名请求文件(Certificate Signing Request,简称CSR文件)
????????openssl reg -new -key private.key -out cert.csr
使用私钥对证书申请进行签名从而生成证书文件(pem文件)
????????openssl x509 -req -in cert.csr -out cacert.pem -signkey private.key

(4)生成两个文件

这两个文件需要放到服务器上,并且在Nginx的配置文件中进行配置

监听修改后,server_name一般填写自己的域名

(5)然后下面这第一红框是刚刚生成的两个文件放置的路径,第二红框是一些协议,一般固定

(6)一般都会配置一个重定向,将http请求转给https,把http的server里面加入下面红色框框内容就ok了

六、虚拟主机

使用nginx可以在一个服务器上部署多个站点,每一个server块就是一个虚拟主机,通过server_name来指定这个虚拟主机的域名,当访问这个域名时候就会相应的server块所匹配到,然后执行server块里面的配置

文章来源:https://blog.csdn.net/m0_73408445/article/details/135204853
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。