概述
目录
(一)Nginx简介
(二)Nginx的作用
0x01 代理
1.1 正向代理:代理是代理客户端的
1.2 反向代理
0x02 负载均衡
2.1 内置策略
0x03 动静分离
(三)Nginx的安装
(四)Nginx常用命令
(五)Nginx配置文件
nginx.conf 内容结构:
(六)Nginx反向代理
(一)Nginx简介
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
- 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
- Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
- Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接
- 数的响应。
(二)Nginx的作用
0x01 代理
代理作为web服务器最常用的功能之一,尤其是反向代理。
1.1 正向代理:代理是代理客户端的
1.2 反向代理
代理是代理服务器的,所以用户是无感知的,比如,百度的服务器是在不同的服务器上,我们只需要搜索baidu.com就行
0x02 负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,非常强大。
2.1 内置策略
- 轮询
- 加权轮询,因为可能不同服务器性能不一样,能接收的请求数量不同
- iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题
0x03 动静分离
在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
(三)Nginx的安装
这里使用ubuntu直接apt安装命令即可:
sudo apt install nginx
其中配置文件在 /etc/nginx/ 目录下
(四)Nginx常用命令
nginx 启动
nginx -s stop 停止
nginx -s quit 安全退出
nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
- 注意:如何连接不上,检查服务器防火墙是否开放端口
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
- firwall-cmd:是Linux提供的操作firewall的一个工具;
- –permanent:表示设置为持久;
- –add-port:标识添加的端口;
(五)Nginx配置文件
配置文件 为nginx.conf ,其中nginx.conf 的注释符号为: #
nginx.conf 内容结构:
... #全局块
events { #events块
...
}
http #http块
{
... #http全局块
server #server块
{
... #server全局块
location [PATTERN] #location块
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局块
}
- 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
- events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
- http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
- server块:配置虚拟主机的相关参数,一个http中可以有多个server。
- location块:配置请求的路由,以及各种页面的处理情况。
(六)Nginx反向代理
假设我们有一个域名 www.example.com , 有两台服务器作为负载服务器,反向代理配置:
http {
...
upstream mysvr {
server 192.168.0.1:8080;
server 192.168.0.2:8080;
}
server {
# 监听端口
listen 80
# 域名
server_name = www.example.com
# 匹配 URL
location / {
# 网站根目录
root /var/www/html;
# 网站的默认首页
index index.html index.htm index.jsp;
# 被代理服务器的地址,可以是主机名称、IP地址加端口号的形式
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
}
...
}
}
这样就把 http://www.example.com:80 的访问分配到192.168.0.1和192.168.0.2这两台服务器的8080端口中,这就是反向代理。
最后
以上就是柔弱小虾米为你收集整理的Nginx基础教程(一)Nginx简介(二)Nginx的作用(三)Nginx的安装(四)Nginx常用命令(六)Nginx反向代理的全部内容,希望文章能够帮你解决Nginx基础教程(一)Nginx简介(二)Nginx的作用(三)Nginx的安装(四)Nginx常用命令(六)Nginx反向代理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复