龙空技术网

Nginx安装配置学习

北漂李子2007 145

前言:

此时小伙伴们对“nginx服务器安装启动停止”可能比较关怀,大家都需要了解一些“nginx服务器安装启动停止”的相关文章。那么小编也在网摘上网罗了一些对于“nginx服务器安装启动停止””的相关内容,希望各位老铁们能喜欢,各位老铁们快快来学习一下吧!

#文章首发挑战赛#

1、Nginx介绍

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,经常使用的大型网站有:百度、京东、新浪、网易、腾讯、淘宝等.

Nginx是由伊戈尔.赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版0.1.0发布于2004年10月4日.

官网:

1、 Nginx下载和安装

可以到Nginx官方网站下载Nginx的安装包,地址为:

安装过程:

1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2、下载Nginx安装包

wget

3、解压 tar -zxvf nginx-1.22.1.tar.gz

4、cd nginx-1.22.1

5、./configure --prefix=/usr/local/nginx

6、make&& make install

Nginx命令

启动和停止

① 进入目录:

cd /usr/local/nginx/sbin

② 启动Nginx服务使用命令如下:

./nginx

③ 停止nginx命令

./nginx -s stop

④ 启动完查看nginx进程:

ps -ef|grep nginx

访问是否成功:

Linux中NGINX启动但是无法访问

1、手动配置防火墙端口号

对外开放端口

# 查看想开的端口是否已开

firewall-cmd --query-port=80/tcp

# 添加指定需要开放的端口

firewall-cmd --add-port=80/tcp --permanent

# 重载入添加的端口

firewall-cmd --reload

# 查询指定端口是否开启成功

firewall-cmd --query-port=80/tcp

再访问:

2、 Nginx目录结构

安装完nginx 后,我们先熟悉一下nginx的目录结构,如下图

检查配置文件正确性

在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:

./nginx -t

重新加载配置文件

当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

./nginx -s reload

Nginx配置文件结构

l 全局块

l Events块

l Http块

整体结构介绍:

注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块

3、 Nginx具体应用

l 部署静态资源

l 反向代理

负载均衡

举例:

后端发版

cd /opt/back

nohup java -jar mybatisPlus2208Demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test1 > test1.log

nohup java -jar mybatisPlus2208Demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test2 > test2.log

配置负载均衡:

Upstream 2208{ #upstream指令可以定义一组服务器

Server 192.168.56.57:8081;

Server 192.168.56.57:8082;

}

Server{

Listen 8081;

Servername localhost;

Location /api{

Proxy_pass ;

}

}

前端发版

前端配置:

把dist.zip传到/opt/front下

cd /opt/front

Unzip dist.zip

Server{

Listen 80; #监听端口

Server_name localhost ;#服务器名称

Location /{ #匹配客户端请求url

root /opt/front/dist ;指定静态资源根目录

Index index.html;#指定默认首页

}

}

命令介绍

【nginx】nginx之location规则详解:一、语法规则

= 开头表示精确匹配

^~ 开头表示uri以某个常规字符串开头,理解为匹配url路径即可(非正则)

~ 开头表示区分大小写的正则匹配

~* 开头表示不区分大小写的正则匹配

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则

/ 通用匹配,任何请求都会匹配到

二、优先级:

等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他location的匹配项

^~和通用匹配。使用前缀匹配,不支持正则表达式,如果有多个location匹配成功的话,不会终止匹配过程,会匹配表达式最长的那个(下方有例子)

如果上一步得到的最长的location为^~类型,则表示阻断正则表达式,不再匹配正则表达式

如果上一步得到的最长的location不是^~类型,继续匹配正则表达式,只要有一个正则成功,则使用这个正则的location,立即返回结果,并结束解析过程

一、upstream模块简介

Nginx的负载均衡功能依赖于ngx_http_upsteam_module模块所支持的代理方式包括proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass和grpc_pass。ngx_http_upstream_module模块有允许Nginx定义一组或多组服务组使用的可以通过proxy_pass代理方式把网站的请求发送到事先定义好的对应upstream组的名字上。upstream模块可以实现负载均衡其实隐含了一个重要功能那就是冗余在一个web节点故障的时候配置了upstream时可以自动切换到正常工作的节点。

二、负载均衡算法简介

调度算法一般分为两类第一类为静态调度算法即负载均衡器根据自身设定的规则进行分配不需要考虑后端节点服务器的情。第二类为动态调度算法即负载均衡器会根据后端节点的当前状态来决定是否分发请求。

1、轮询

rr 轮循即round robin 默认调度算法静态调度算法。客户端请求顺序把客户端的请求逐一分配到不同的后端节点服务器这相当于 LVS 中的 rr 算法如果后端节点服务器宕机默认情况下nginx 只检测80端口。宕机的服务器会自动从节点服务器池中剔除以便客户端的用户访问不受影响。新的请求会分配给正产的服务器。

2、权重轮询

wrr即weight 权重轮循静态调度算法。在 rr 轮循算法的基础上加上权重即为权重轮循算法当使用该算法时权重和用户访问成正比权重值越大被转发的请求也就越多。可以根据服务器的配置和性能指定权重值大小有效解决新旧服务器性能不均带来的请求分配问题。

3、IP哈希

ip_hash是静态调度算法每个请求按客户端 IP 的 hash 结果分配当新的请求到达时先将其客户端IP通过哈希算法哈希出一个值在随后的客户端请求中客户 IP 的哈希值只要相同就会被分配至同一台服务器该调度算法可以解决动态网页的 session 共享问题但有时会导致请求分配不均即无法保证 1:1 的负载均衡因为在国内大多数公司都是 NAT 上网模式多个客户端会对应一个外部 IP所以这些客户端都会被分配到同一节点服务器从而导致请求分配不均。LVS 负载均衡的 -P 参数、keepalived 配置里的 persistence_timeout 50 参数都类似这个 Nginx 里的 ip_hash 参数其功能均为解决动态网页的 session 共享问题。

4、最小连接数

least_conn是动态调度算法会根据后端节点的连接数来决定分配情况哪个机器连接数少就分发。

5、最短响应时间

最短响应时间fair调度算法是动态调度算法会根据后端节点服务器的响应时间来分配请求响应时间端的优先分配。这是更加智能的调度算法。此种算法可以依据页面大小和加载时间长短只能地进行负载均衡也就是根据后端服务器的响应时间来分配请求响应时间短的优先分配。Nginx 本身是不支持 fair 调度算法的如果需要使用这种调度算法必须下载 Nginx 的相关模块 upstream_fair。

6、url_hash算法

url_hash算法是动态调度算法按访问 URL 的 hash 结果来分配请求使每个 URL 定向到同一个后端服务器可以进一步提高后端缓存服务器的效率命中率。多用于后端服务器为缓存时的场景下Nginx 本身是不支持 rul_hash的如果需要使用这种调度算法必须安装 Nginx 的hash 模块软件包。

三、配置示例1、配置示例模板

upstream backend {

server backend1.example.com weight=5; #执行realserver可以赋权重

server backend2.example.com:8080;

server unix:/tmp/backend3;

server backup1.example.com:8080 backup; #backup表示该节点为热备节点激活节点失效时启用

server backup2.example.com:8080 down; #下线服务器可以在real服务器需要维护时配置

}

server {

listen 80; #listen、server_name这些正常配置

server_name ;

location / {

proxy_pass ; ##反向代理执行定义的upstream名字

}

}

2、权重轮询配置示例

upstream show {

server 192.168.0.141 weight=1;

server 192.168.0.142 weight=2;

}

3、ip_hash配置示例

upstream show {

ip_hash;

server 192.168.0.141 ;

server 192.168.0.142 ;

}

4、fair配置示例

upstream show {

fair;

server 192.168.0.141 ;

server 192.168.0.142 ;

}

5、least_conn配置示例

upstream show {

least_conn;

server 192.168.0.141 ;

server 192.168.0.142 ;

}

6、url_hash配置示例

upstream show {

server 192.168.0.141 ;

server 192.168.0.142 ;

hash $request_uri;

hash_method crc32;

}

标签: #nginx服务器安装启动停止