服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Nginx服务快速入门教程

Nginx服务快速入门教程

2021-03-22 21:22_李 Nginx

这篇文章主要介绍了Nginx服务快速入门教程的的相关资料,帮助大家更好的理解和使用nginx,感兴趣的朋友可以了解下

一、nginx介绍

 

1. 什么是nginx?

  • nginx (engine x) 是一个高性能的http和反向代理web服务器,同时也提供了imap/pop3/smtp服务。
  • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

2. 为什么要使用nginx?

随着当今互联网的迅速发展,单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台tomcat服务器来进行负载均衡。

那么,应该如何实现负载均衡?nginx就是其中的一种解决方案,当用户访问网站时,nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。

Nginx服务快速入门教程

并且,在nginx中有一种ip_hash策略,它可以获取到用户的真实ip,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。 所以,掌握nginx成为了web开发学习道路上不可缺少的一部分。

3. 什么是正向代理?

正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的vpn就是一种代理服务器,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理,并且客户端能够连接上该代理服务器。

Nginx服务快速入门教程

4. 什么是反向代理?

反向代理与正向代理不同,正向代理是代理了客户端,而反向代理则是代理服务器端。在有多台服务器分布的情况下,为了能让客户端访问到的ip地址都为同一个网站,就需要使用反向代理。

Nginx服务快速入门教程

明白了反向代理的工作机制后,接下来就可以进入nginx的学习!

二、nginx在linux下的安装

 

由于nginx被大量使用在web服务器中,所以本教程选择了centos服务器的7.4版本作为演示!

1. 下载

进入官方下载页面:http://nginx.org/en/download.html,选择stable version稳定版本进行下载,并上传至服务器。

Nginx服务快速入门教程

2. 安装

上传tar包至服务器后,解压到当前目录

?
1
tar -zxvf nginx-1.18.0.tar.gz -c ./

进入解压后的目录,执行configure脚本

?
1
2
cd nginx-1.18.0/
./configure

使用make命令进行安装

?
1
make && make install

安装完成后,使用whereis命令查找nginx的安装位置 (默认安装在/user/local/目录下)

?
1
whereis nginx

进入安装目录下的bin文件夹,启动nginx服务,访问服务器默认的80端口查看是否安装成功!

Nginx服务快速入门教程

三、nginx配置入门

 

1. 配置文件

在nginx的安装目录下有一个conf文件夹,打开其中的nginx.conf文件

?
1
cd conf/ && vim nginx.conf

Nginx服务快速入门教程

2. 反向代理单个服务器

那么,如何使用nginx进行反向代理?

在location参数中添加proxy_pass字段,并填写需要反向代理的服务器地址与端口号:

注意:每一行的配置都需要以封号结尾!!!

?
1
2
3
4
5
6
7
# 配置监听的目录为:/
location / {
    root html;
    index index.html index.htm;
    proxy_pass http://127.0.0.1:8080; # 反向代理了本机的8080端口
    # proxy_pass http://127.0.0.1:8081; # 可以同时配置多条proxy_pass,反向代理了本机的8081端口
}

3. 反向代理多台服务器

如果有多台服务器怎么办?除了不断地添加proxy_pass参数,更好的解决方案是配置upstream服务器组!

在配置文件的http块中添加upstream属性:

?
1
2
3
4
5
6
7
8
9
10
11
12
# 配置服务器组,取名为hello
upstream hello{
    # 一个server对应一个服务器,当然也可以是不同端口的web程序
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}
# 在location块中修改反向代理为服务器组
location / {
    root html;
    index index.html index.htm;
    proxy_pass http://hello; # 反向代理了hello服务器组中的所有服务器
}

四、运行测试

 

1. 启动服务

配置完成后,进入nginx安装目录下的sbin文件夹,运行nginx程序即可:

?
1
/usr/local/nginx/sbin/nginx

如果之前已经启动,无需关闭nginx服务,只需要让nginx重新加载配置文件即可:

?
1
nginx -s reload

刷新浏览器,若反向代理成功,访问的路径会自动映射到配置文件中的服务器地址!

将来,随着用户量的增长,可能需要添加新的服务器;这时只需要修改配置文件,使用 nginx -s reload 命令即可,无需关闭nginx服务器!

2. 关闭服务

关闭nginx服务的方式一般分为两种:

?
1
2
nginx -s stop # 立即停止,无论是否在工作
nginx -s quit # 等待进程完成当前工作后安全退出

五、负载均衡

 

1. 什么是负载均衡?

由于不同服务器的配置不同,为了让性能高的服务器分配到更多的请求,便引入了负载均衡的概念。

前面提到过,nginx的负载均衡方式可以有很多种,如加权轮询(默认)、ip哈希、url哈希等等,这里就以加权轮询作为介绍。

加权轮询,也就是通过给服务器添加各自的权重值,nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多,反之越少:

Nginx服务快速入门教程

上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次请求,权重为2的服务器会分配到2个请求,权重为1的服务器则会分配到1个请求。负载均衡大大减少了在高并发的环境下服务器宕机的风险!

2. 配置nginx负载均衡

同样地,打开nginx.conf文件进行配置:

?
1
vim nginx.conf

在upstream块中添加weight参数:

?
1
2
3
4
upstream hello{
    server 服务器1:8080 weight=3; # 配置服务器1的权重为3
    server 服务器2:8080 weight=1; # 配置服务器2的权重为1
}

添加完成后执行 nginx -s reload 即可!

以上就是nginx服务快速入门教程的详细内容,更多关于nginx入门教程的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/ljr825010/p/14351625.html

延伸 · 阅读

精彩推荐
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30