Linux - Nginx安装和使用
1. Nginx简介
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2. Nginx核心
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
- 简单一点:通过代理服务器来访问服务器的过程 就叫 正向代理。
- 需要在客户端配置代理服务器进行指定网站访问
- 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
- 我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。
- 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
- 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
- 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
3. Nginx安装
首先准备一台装了ubuntu系统的linux服务器或者虚拟机。如下图所示
3.1 安装Nginx
按照顺序执行以下命令
sudo apt-get update #进行所有安装操作前都要执行这一句
sudo apt install nginx #出现询问就Yes
安装完成后可以使用一下语句查看是否启动完成
systemctl status nginx
出现以下报错就说明没有安装systemctl
System has not been booted with systemd as init system (PID 1). Can‘t operate.
需要先安装systemctl,使用以下语句
sudo apt install systemctl
然后再查看状态,一般可以看见running说明已经在跑了,
如果是deaf的话就要先启动,使用如下语句
3.2 启动Nginx服务
sudo /etc/init.d/nginx start
3.3 停止Nginx服务
这个语句有两条,一个是逐个检查关闭nginx,一个是立即关闭nginx,最好是使用第一个。
//逐个关
sudo /etc/init.d/nginx quit
sudo nginx -s quit
//立即关
sudo /etc/init.d/nginx stop
sudo nginx -s stop
使用kill语句指定PID号关闭,找到nginx的master 进程的pid号
sudo kill -quit PID //优雅停机
sudo kill -term PID //快速停机
sudo kill -9 PID //强制停机
3.4 查看Nginx进程
ps aux | grep nginx
如下图中可以看见有一个master和两个worker,worker的数量表示服务器的核心数,这里有两个worker说明服务器的两核的。
3.5 加载最新配置
sudo /etc/init.d/nginx reload
在上面那篇博客中知道nginx中有一个叫做nginx.conf的配置文件,里面有一些如监听端口80的配置等等。
nginx服务器默认监听80端口。现在我们的服务器上装了nginx之后就可以通过服务器的公网ip看看nginx是否成功部署。
3.6 查看当前Nginx版本
nginx -v
通过公网ip查看nginx
在浏览器输入服务器公网ip后看见如下内容说明nginx成功部署。
这里http协议登录的端口号默认就是80端口,nginx服务器的默认端口也是80,所以可以直接通过ip访问。
如果显示别的一些拒绝访问之类要么服务器的安全组没开放80端口,要么是nginx没搞好。
如果是使用容器装nginx的话一定要在创建容器时就要配置好端口映射80:80
4. 自己创建配置文件信息
nginx当中有一个核心的配置文件nginx.conf,如果要额外增加一些配置的话就需要进到conf.d文件夹下面去增加更多的配置。
关于conf.d的更多详细信息可以的看这里https://www.cnblogs.com/fps2tao/p/9958009.html
在系统中进入到conf.d文件夹下面,使用如下命令, 并新建一个配置文件。
cd /etc/nginx/conf.d
sudo touch turing.conf
//编写文件
sudo vim turing.conf
然后配置文件内容为
server{
listen 81;
location /{
root /home/;
}
}
server的参数解释:
退出去后可以通过以下命令查看配置信息有没有问题
sudo nginx -t
没问题显示如下:
有问题,比如少了个括号时显示如下,会连同所在行一起显示:
4.1 使新建配置生效
创建完上面的配置文件之后要使新的配置生效使用上面提到的一个语句
重载配置文件,注意,此处配置文件里面用到的端口号必须要在服务器的防火墙上放行,或者使用docker配置端口映射的时候,比如20000:81 ,左边的20000是要在服务器防火墙上放行的,右边的81是要在创建容器时就配置好的。
sudo nginx -s reload
然后在ip后面加上新增配置的81端口号就会出现如下的403错误,因为在home目录下什么也没有
4.2 配置端口映射页面
为了让上面的url访问之后有东西显示,这里要新建一个html的页面,按照以下语句执行。
cd /home/
sudo touch index.html
sudo vim index.html
index.html里面的内容
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>hello nginx!</h1>
<center><H1>只要你还是个萝莉控,你的灵魂就永远都无法得到救赎</H1></center>
<center>CSDN:<a href="https://blog.csdn.net/m0_62327332?type=blog "target="_blank"> 北岭山脚鼠鼠</a>
</center>
<center>哔哩哔哩:<a href="https://space.bilibili.com/45509741?spm_id_from=333.1007.0.0"target="_blank"> 北岭山脚鼠鼠</a>
</center>
<center>
<img src="https://cdn.acwing.com/media/user/profile/photo/150603_lg_5b00f49635.jpg" alt="加载失败">
</center>
</body>
</html>
保存后刷新页面,即使没有进行域名备案之类,也可以看见已经有东西可以显示出来了
————————————————
版权声明:本文为CSDN博主「北岭山脚鼠鼠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_62327332/article/details/130449115
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!