Web 服务基石 Nginx:从搭建到配置深度笔记

一、Nginx


概述:

Nginx 是一款轻量级的高性能 Web 服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。由俄罗斯人伊戈尔・赛索耶夫开发,其在处理高并发连接方面表现卓越,能够高效地处理大量并发请求,广泛应用于各种规模的网站和应用程序中。

特点:

1.高并发处理能力:采用事件驱动的异步非阻塞模型,能在少量线程下处理大量并发连接,在高并发场景下,Nginx 的性能优势明显,资源占用少,响应速度快。例如,一些大型电商网站在促销活动期间,Nginx 能稳定处理海量并发请求,保障网站的正常运行。


2.反向代理和负载均衡:作为反向代理服务器,可接收互联网用户的请求并转发到后端真实服务器,同时实现负载均衡功能,将请求均匀分配到多个后端服务器上,提高系统的可靠性和可扩展性。如将用户对网站的访问请求均衡分配到多个 Web 服务器上,避免单个服务器负载过高。


3.配置简洁:配置文件结构清晰,语法简洁,易于理解和维护。通过简单的配置指令,可实现各种复杂的功能,如虚拟主机设置、URL 重写、SSL/TLS 加密等。

 nginx的安装与启动

1.安装

注意:nginx的安装需要先配置好软件仓库网络服务

 dnf install nginx -y

2.启动nginx

systemctl enable --now nginx

 3.火墙放行

firewall-cmd --permanent ---add-service=http
—— 在火墙中放行http服务
 
firewall-cmd --reload
—— 重启火墙

 

 检查http是否被放行

firewall-cmd --list-all

 

nginx默认共享目录 

1、进入nginx默认共享目录

 会将该目录的东西都共享到网络上 

 2、共享目录里的index.html 

 可以看到一个叫index.html的东西,这是它的默认发布文件,里边就能够访问用户指定的内容了,试着访问一下(浏览器直接访问虚拟机ip地址

3、 查看默认使用的端口

默认端口为80 

 netstat -antlupe | grep nginx

 

 4、修改默认使用的端口

先进入/etc/nginx/路径,在里边查看一下文件

 可以看到一个nginx.conf的文件,修改此文件里边的参数即可改变端口号

 vim nginx.conf

 修改完毕后,重启

nginx -s reload

 nginx默认配置目录 

 

改变nginx默认共享目录的发布文件 

创建一个自己的文件(例如test.html

注意:请确保自己在/usr/share/nginx/html/路径下

cd /usr/share/nginx/html/ 

 在此路径下创建一个自己的文件,这里为test.html

 vim test.html

 在里面写上内容,例:twbdsb

将test.html更改为默认发布文件 

cd /etc/nginx/
 
vim nginx.conf

 在nginx.conf中找到下图内容并修改修改完后,重启nginx

nginx -s reload

 此时,我们在去浏览器访问自己虚拟机的ip地址,可以发现已经是test.html这个文件的内容了

改变nginx默认共享目录的路径 

和上述操作一致

注意:修改了默认路径后,下一行的index出也需要修改成自己目录里有的文件哦!此处跟着做的话就是index.html

 修改完后,重启nginx

nginx -s reload

 nginx访问控制

默认任何人都能访问你的nginx目录,那我们要如何限制呢?通过location能够解决

基于ip的访问控制

vim /etc/nginx/nginx.conf

 进入后添加location 

进入后:找到server项

注意:location 大括号下的指令有读取顺序,前面的会先读取执行,然后再是后面的,比如这里先把deny all先写在前面,allow写在后面,就会先执行deny命令,而后面的allow就不会生效了

 记得要重启nginx

nginx -s reload

 基于用户的访问控制「步骤」

先安装软件包httpd-tools

dnf install httpd-tools -y

 

 使用htpasswd

 ll /etc/nginx/.htpasswd

下面分两种情况:

1)显示“无法访问...没有那个文件或目录”
第一次使用htpassd应该都是这种情况,这是我们使用-cm:

htpasswd -cm /etc/nginx/.htpasswd test(这里的test是一个用户!)
 

按enter后输入密码,之后就会显示这个,代表该用户已经有密码了

 

 进入nginx.conf

vim /etc/nginx/nginx.conf


 同样,修改完重启nginx

 nginx -s reload

 此时访问就会被要求输入用户和密码,这样用户访问控制就完成了

nginx虚拟机 

 基于ip的虚拟机

ip a a 192.168.188.41/24(添加的ip地址根据自己的ip来写) dev ens160(网卡写自己的) 

 

 将新的ip分配不同的站点

我们需要做到访问21ip时去看一个文件,访问25ip时去看另一个文件,这样就分配了不同的站点

新建一个指定目录

建立一个指定目录,并在其下再建立news和bbs两个文件

mkdir /usr/share/nginx/virtualhost/{news,bbs}  -p

 指定ip地址访问文件

将21ip指定访问news的index.html;25ip指定访问bbs的index.html

 进入 /etc/nginx/conf.d/

 cd /etc/nginx/conf.d/

 创建进入vhosts.conf、

vim vhosts.conf

 添加指令

添加下图指令 ,一个server就是一个虚拟主机

 

修改完,重启nginx 

nginx -s reload

 这样我们浏览器访问21ip就会显示10的ip地址, 访问20ip就会显示25的ip地址,这样就做到了不同ip分配不同站点

 进入vhosts.conf,修改listen添加server_name

修改listen

将listen修改成80端口号

添加server_name

添加server_name,并给予网站域名

添加dns

写了域名但是系统并不知道,所以要配置dns来让系统知道一个ip对应一个域名,这里演示配置Linux的dns,所以应该后面测试应该用Linux的浏览器访问域名哦!

 进入/etc/hosts

添加dns 

这里演示配置Linux的dns,所以应该后面测试应该用Linux的浏览器访问域名哦!

最后发现基于域名已经可以访问到对应IP地址的nginx服务器,实验就成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值