Web服务器Nginx快速入门

本文介绍了如何在Windows10系统上下载、安装Nginx,包括启动、查看端口占用、修改默认端口以及配置文件的详细解读。还讲解了正反向代理的概念,以及如何利用Nginx实现负载均衡和虚拟主机功能。
摘要由CSDN通过智能技术生成

Nginx介绍

Nginx是一个很强大的高性能Web反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下。而在开发过程中,我们常常需要在window系统下使用Nginx作为Web服务器。

Window10 下载安装Nginx

下载Nginx

Nginx官网: 点击查看

去Nginx官网下载:

访问Nginx官网,找到download

image.png
选择Nginx版本:

在下载界面选择自己需要的Nginx版本,找到对应版本,下载即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
解压Nginx:

下载到本地,直接解压即可

image.png

Nginx的启动

Nginx基本目录:

image.png

conf:存在Nginx配置文件的目录
docs:存放Nginx文档的目录
html:存放静态html文件的目录
logs:存放Nginx日志的目录
temp:存放临时文件的目录

查看80端口是否被占用:

  1. 打开命令窗口(以管理员身份运行)

image.png

  1. 查询所有运行的端口
netstat -ano

3.查询某个端口运行的进程号

netstat -aon|findstr 80

image.png
例如 80 端口目前进程号为: 10668
4. 根据进程号查看被哪个应用占用

tasklist|findstr 10668

image.png
5.结束占用的进程号

taskkill -PID 51248 -F

这样80端口就不再被占用了

Nginx默认80端口,因此也可以直接修改Nginx的默认端口,方法如下:

  1. Nginx的配置文件是在conf目录下的nginx.conf文件

image.png
2.修改Nginx端口号
image.png
image.png

启动Nginx:

在Nginx安装目录的绝对路径的框框内输入 cmd

image.png

直接输入 nginx 或者 start nginx,然后回车,就可以启动Nginx了

image.png

然后在浏览器地址栏输入 localhost:80 ,然后再回车(80端口号可以省略,就算输入了也不显示)

image.png

关闭nginx的命令:nginx -s stop

Nginx的配置文件

打开配置文件

  • 打开命令窗口(终端),可以通过命令nginx -V来查找Nginx配置文件所在路径。

image.png
如上图, --conf-path=后面就是配置文件所在路径

  • 进入对应目录

image.png

  • 用vscode 打开配置文件nginx.conf

image.png

image.png

配置文件相关

worker

image.png
在Nginx中,有一个主进程(master),其用于来检测配置文件和管理worker进程,而worker进程就是工作进程,用来处理来自客户端的各种请求

image.png
在配置文件中,worker_processes用来管理worker进程数量,如上图所示,默认工作进程为1

events 块

events 块主要用于管理服务器与客户端之间的网络连接的配置
image.png
worker_connections 用来配置每个worker的最大连接数,如上图所示,最大连接数为1024

http块

http块整个配置文件中修改最频繁的部分
下图为http块的结构:
image.png

捕获.PNG
如上图所示, http块引入了另一个配置文件 mime.types,该文件可以使Nginx可以通过文件后缀名来判断文件的类型,并作出对应的处理,文件内容如下图所示:

image.png
图中 后缀名为css的会被Nginx当成文本文件(text) 来处理,后缀名为jpg的会被当成二进制文件(image) 处理,其余的按照文件依次类推。

文件中同一行的第一个是Nginx对该文件的分类,如text/html就是指文本文件类型下html,第二个是该文件的后缀名

server 块

server块就是虚拟主机块,里面对应着虚拟主机的配置,可以配置多台虚拟主机(如下图)
捕获.PNG

listen 80; 表明该服务器监听80端口(可自定义),即通过80端口与客户端通信

server_name localhost; 表明该服务器域名是localhost(http://localhost)
image.png

location /{} 表明当访问到根路径/ 时(http ://localhost/),就会弹出的网页,块里面是网页所在位置, 路径是Nginx安装所在位置的html文件夹下,该文件下的index.html
image.png

image.png

https配置

image.png
如上图所示,https协议就是http协议的安全版本,使用https协议要用到ssl证书(其可以生成密钥文件和证书文件),在腾讯云和阿里云上都可以申请到免费的ssl证书。

image.png

将密钥文件和证书文件都放在服务器上,然后如上图所示,打开配置文件做修改,在监听端口号后面加上ssl, 输入证书文件和密钥文件在服务器上存储的地址,后面的配置如上图所示即可

http重定向

将某个配置了域名的http请求重定向到https版本站点:

server {     
listen 80;     
server_name 662p.com www.662p.com;     
return 301 https://662p.com$request_uri; 
}

//让我们逐行了解上面的代码。

Listen 80;
//使用端口80,服务器将侦听指定域名的所有传入连接。

Server_name 662p.com www.662p.com 
//指定域名。因此,将其替换为要重定向的网站域名。

Return 301 https://662p.com$request_uri 
//将请求移至该站点的HTTPS版本。

将所有http请求重定向到https版本站点:

server {
    listen 80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}

解释说明:由于 default_server 的存在,那些未配置的 HTTP 域名也将匹配该 server {} 块,然后 return 301 将重定向到对应的 HTTPS 站点

正向代理与反向代理

正向代理是一个位于客户端和目标服务器之间的代理客户端中间客户端)。为了从目标服务器取得内容,客户端向代理客户端发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端(如通过VPN科学上网,此时VPN就是正向代理)

image.png

反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器

image.png
反向代理好处:客户端只能访问指定的域名(可自定义),从而避免了服务器的真实ip地址和端口号泄露,保证了数据安全

Nginx配置反向代理

image.png

如上图所示,在http块中配置反向代理:upstream backend{},其中backend自定义的反向代理块的名字,该块里面是其他三个服务器 server ip地址:端口号

image.png
配置完反向代理块后,在server块中 配置location /app{},其中app是自定义的域名,即那个客户端可以访问到的域名,该块里面,proxy_pass 后面跟的是反向代理块(http://反向代理块的名字)

image.png

如上图所示,就可以访问到对应的反向代理块内的服务器了,当其中同时有多个服务器时,采用轮询的方式来依次访问。

为了防止所有客户端都挤在一个服务器进行访问,使其他服务器空闲,因此我们在部署服务器时要考虑到负载均衡

负载均衡策略
权重法

image.png

如上图所示,可以在服务器后面增加权重,因而增大服务器被访问到的几率

ip哈希法

image.png

如上图所示, 添加语句 ip_hash; ,这样每个客户端IP地址都会进行hash处理,再根据结果来决定访问哪一个服务器,保证同一个客户端只能访问同一个服务器

虚拟主机

Nginx中一个server块就是一个虚拟主机,当我们访问不同域名时,Nginx会根据域名来启用对应的主机配置,因此我们可以在一台服务器上部署多个虚拟主机,即部署多个网站

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freejackman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值