nginx安装配置(图文教程)
nginx
介绍
nginx
是一款使用C语言编写的高性能的HTTP和反向代理服务器。优点是占用内存小,并发能力强。
nginx
下载、安装
输入以下代码下载安装包
wget install http://nginx.org/download/nginx-1.22.1.tar.gz
解压压缩包
tar -zxvf nginx-1.22.1.tar.gz
进入目录,赋予执行权限
cd nginx-1.22.1 && chmod +x configure
安装nginx
所需要的一些环境
# 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
开始安装
# 开始安装
./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
主界面,如出现下图内容则说明配置成功。
nginx
简单配置
反向代理
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
。
负载均衡
轮询
upstream test{
server localhost:80
server localhost:9100
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}
该配置的效果为,当用户访问8088
端口时,nginx
会将请求按照默认的轮询方式分配到80
和9100
端口上,进行转发跳转。
权重
upstream test{
server localhost:80 weight=1;
server localhost:9100 weight=4;
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}
该配置的效果为,当用户访问8088
端口时,会按照权重分配到80
和9100
端口。如果有5
次请求,那么80
端口会分配1
次,9100
端口会分配4
次。
IP
散列
upstream test{
ip_hash;
server localhost:80;
server localhost:9100;
}
server {
listen 8088;
location / {
proxy_pass http://test;
}
}
上述weight权重
模式方式存在一个问题,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
采用ip_hash
指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip
的hash
结果分配,这样每个访客固定访问一个后端服务器,可以解决session
不能跨服务器的问题。