0%

nginx安装配置(图文教程)

nginx安装配置(图文教程)

nginx介绍

nginx是一款使用C语言编写的高性能的HTTP和反向代理服务器。优点是占用内存小,并发能力强。

nginx下载、安装

输入以下代码下载安装包

1
wget install http://nginx.org/download/nginx-1.22.1.tar.gz

解压压缩包

1
tar -zxvf nginx-1.22.1.tar.gz

进入目录,赋予执行权限

1
cd nginx-1.22.1 && chmod +x configure

安装nginx所需要的一些环境

1
2
3
4
5
6
7
8
# c编译器
yum -y install gcc gcc-c++ autoconf automake make
# 解析正则的pcre库
yum install -y pcre pcre-devel
# 添加对gzip的支持
yum install -y zlib zlib-devel
# SSL
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

开始安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 开始安装

./configure --with-stream

# 安装完成之后编译
make

# 安装编译后的文件
make install

# 安装nginx源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装常用软件源
yum -y install epel-release
# 安装modules模块
yum -y install nginx-all-modules.noarch

在本地输入IP地址+端口号(默认为80)看是否可以进入nginx主界面,如出现下图内容则说明配置成功。

image-20230328191038970

nginx简单配置

反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name file.com;

location / {
root /tmp/templates;
proxy_pass http://39.101.66.202:1080;
index index.html;
}
location /static/ {
root /lm/wh_Tipdm_getfile;
autoindex off;
}
}

以上为nginx.conf的配置文件,作用为将服务器能够访问的http://39.101.66.202:1080资源,反向代理给域名file.com端口为80

负载均衡

轮询

1
2
3
4
5
6
7
8
9
10
upstream test{
server localhost:80
server localhost:9100
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}

该配置的效果为,当用户访问8088端口时,nginx会将请求按照默认的轮询方式分配到809100端口上,进行转发跳转。

权重

1
2
3
4
5
6
7
8
9
10
upstream test{
server localhost:80 weight=1;
server localhost:9100 weight=4;
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}

该配置的效果为,当用户访问8088端口时,会按照权重分配到809100端口。如果有5次请求,那么80端口会分配1次,9100端口会分配4次。

IP散列

1
2
3
4
5
6
7
8
9
10
11
upstream test{
ip_hash;
server localhost:80;
server localhost:9100;
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}

上述weight权重模式方式存在一个问题,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。

-------------本文结束感谢您的阅读-------------