【Linux笔记】 web服务——nginx相关

06-01 1265阅读

一、nginx

1、概念

Nginx 是一个高性能的 HTTP/反向代理服务器,同时支持负载均衡、邮件代理和静态资源缓存。其优势在于高并发连接处理、低内存消耗和模块化架构,常用于构建现代 Web 架构。

这里我们讲的是nginx类

二、nginx的安装与启动

1、步骤

注意:nginx的安装需要先配置好软件仓库和网络服务(先前博客有讲)

(1)安装nginx

dnf install nginx -y

示例

【Linux笔记】 web服务——nginx相关

 

(2)启动nginx

systemctl enable --now nginx

示例

【Linux笔记】 web服务——nginx相关

第一次启动应该会弹出些提示(created开头的),博主这里先前启动过所以没弹提示

【Linux笔记】 web服务——nginx相关

 

(3) 关闭火墙(火墙放行)

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

示例

【Linux笔记】 web服务——nginx相关

【Linux笔记】 web服务——nginx相关

通过该命令查看http是否在内:

firewall-cmd --list-all

【Linux笔记】 web服务——nginx相关

 

三、nginx默认共享目录

1、进入nginx默认共享目录

【Linux笔记】 web服务——nginx相关

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


2、共享目录里的index.html 

进入该目录后,ls查看一下该目录的东西

【Linux笔记】 web服务——nginx相关

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

这里我用echo写了个ip地址进去,访问即可看到,你们可以自己随便写点东西,如用户名,命令如下:

echo lincoln(这是博主的用户名) > index.html

3、查看默认使用的端口

默认端口为80

netstat -antlupe | grep nginx

示例

【Linux笔记】 web服务——nginx相关


4、修改默认使用的端口

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

【Linux笔记】 web服务——nginx相关

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


进入nginx.conf

vim nginx.conf

示例

【Linux笔记】 web服务——nginx相关


进入后,修改此项即可改变端口

【Linux笔记】 web服务——nginx相关


修改完后,重启nginx

nginx -s reload

 重启完才会生效!

修改完端口可能还需要去火墙那放行端口号,才能访问,所以建议不要去修改,默认80就行,只需要知道其能够修改即可

四、 nginx默认配置目录

下图就是 nginx默认配置目录

【Linux笔记】 web服务——nginx相关

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

在第三大点中讲过nginx默认共享目录的发布文件为index.html,我们可以将其修改成其他文件,如修改成自己创的文件

1、创建一个自己的文件(这里是test.html)

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

cd /usr/share/nginx/html/

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

vim test.html

示例

【Linux笔记】 web服务——nginx相关

在里边随便编写一些字符,这里博主写的是自己的用户名 

【Linux笔记】 web服务——nginx相关

wq保存退出


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

进入路径/etc/nginx/并进入nginx.conf

cd /etc/nginx/
vim nginx.conf

示例

【Linux笔记】 web服务——nginx相关


找到此行,添加如图指令

【Linux笔记】 web服务——nginx相关

Tips:index可以指定多个文件,但是不会全部一起出现,而是会排队访问


修改完后,重启nginx

nginx -s reload

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

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

1、大致思路(与第五大点类似)

与修改默认发布文件(第五大点)相似,这里就不再赘述,基本思路就是:

(1)自己在/usr/share/nginx/下,新建一个目录

(2)随后在自己建的新目录下建立一个文件(如index.html)

(3)还是进入路径/etc/nginx/并进入nginx.conf

(4)修改此行的路径,将其修改成自己创的那个目录(如图)【Linux笔记】 web服务——nginx相关

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

(5) 修改完后,重启nginx

七、nginx访问控制

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

1、基于ip的访问控制「步骤」

(1)进入nginx.conf

vim /etc/nginx/nginx.conf

示例 

【Linux笔记】 web服务——nginx相关

(2)进入后添加location 

进入后:找到server项里,这点很重要!!!

【Linux笔记】 web服务——nginx相关

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

【Linux笔记】 web服务——nginx相关

(3) 修改完,重启nginx

nginx -s reload

这样访问控制就设置成功了,现在只有允许的ip能够访问此目录,其他ip访问会出现网页报错(如图):

【Linux笔记】 web服务——nginx相关

 

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

(1)先安装软件包httpd-tools

dnf install httpd-tools -y

示例

【Linux笔记】 web服务——nginx相关

 

(2) 使用htpasswd

我们先查看一下/etc/nginx/.htpasswd:

ll /etc/nginx/.htpasswd

下面分两种情况:

1)显示“无法访问...没有那个文件或目录”

第一次使用htpassd应该都是这种情况,这是我们使用-cm:

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

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

【Linux笔记】 web服务——nginx相关

 

2)显示出了文件

【Linux笔记】 web服务——nginx相关

这种情况代表已经有了该文件,所以把-cm的c去掉,代表不创建、仅修改,这样就不会覆盖其他用户

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

(3)进入nginx.conf

vim /etc/nginx/nginx.conf

示例

 【Linux笔记】 web服务——nginx相关

(4) 进入后,添加location

【Linux笔记】 web服务——nginx相关

图中location下的名词解释:

auth basic on;  —— 代表开启基本认证

auth basic user file /etc/nginx/.htpasswd; —— 代表指定认证文件 

(5) 修改完,重启nginx

nginx -s reload

此时访问就会被要求输入用户和密码,这样用户访问控制就完成了【Linux笔记】 web服务——nginx相关

八、nginx虚拟机

1、基于ip的虚拟机

(1)添加新ip地址

ip a a 192.168.76.20/24(添加的ip地址根据自己的ip来写) dev ens160(这是博主的网卡,网卡写自己的)

示例(添加了2个ip地址)

【Linux笔记】 web服务——nginx相关

【Linux笔记】 web服务——nginx相关

 

(2)将新的ip分配不同的站点

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

 1)新建一个指定目录

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

mkdir /usr/share/nginx/virtualhost/{news,bbs}  -p
2)指定ip地址访问文件

将10ip指定访问news的index.html;20ip指定访问bbs的index.html

echo 192.168.76.10 > /usr/share/nginx/virtualhost/news/index.html

示例 

【Linux笔记】 web服务——nginx相关

【Linux笔记】 web服务——nginx相关

(3)进入 /etc/nginx/conf.d/

cd /etc/nginx/conf.d/

【Linux笔记】 web服务——nginx相关

(4) 创建进入vhosts.conf

vim vhosts.conf

 示例

【Linux笔记】 web服务——nginx相关

(5)添加指令

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

【Linux笔记】 web服务——nginx相关(6)修改完,重启nginx

nginx -s reload

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

2、基于域名的虚拟机

基于域名的虚拟机建立在基于ip之上,所以前期操作都是相同的,不再赘述,这里就讲不同的地方

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

1)修改listen

将listen修改成80端口号

【Linux笔记】 web服务——nginx相关

2)添加server_name

添加server_name,并给予网站域名

【Linux笔记】 web服务——nginx相关

(2)添加dns

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

1)进入/etc/hosts
vim /etc/hosts

示例 

【Linux笔记】 web服务——nginx相关

2)添加dns

【Linux笔记】 web服务——nginx相关

(3)测试

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

news.lincoln.org对应10ip

【Linux笔记】 web服务——nginx相关

 bbs.lincoln.org对应20ip【Linux笔记】 web服务——nginx相关

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码