nginx介绍和使用
nginx介绍
nginx是一个高性能的HTTP和反向代理的Web服务器,在实际项目开发中常用于做负载均衡,请求动静分离等。window下直接下载二进制包直接运行即可,今天这篇文章主要讲解在Linux系统下如何安装nginx。
nginx安装
nginx安装环境准备
1、检查系统是否有安装nginx所需要的的依赖包,nginx依赖包包括gcc、g++、zlib-devel、openssl-devel和pcre-devel:
#rpm包安装的,可以用 rpm -qa 查看
rpm -qa | grep "软件或者包的名字"
以deb包安装的,可以用 dpkg -l 查看
dpkg -l | grep "软件或者包的名字"
yum方法安装的,可以用 yum list installed 查看
yum list installed | grep "软件名或者包名"
举例:查看是否安装了gcc
rpm -qa | grep gcc
deb -l | grep gcc
yum list installed | grep gcc
安装依赖包
有网络的情况下可以通过yum直接安装
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
内网环境下采用离线安装方式;
1、查看Linux系统版本号(cat、etc/redhat-release)
2、下载系统版本对应的依赖库(https://vault.centos.org/版本号/os/x86_64/Packages/)
3、将需要的rpm包上传到Linux服务
4、执行安装命令(rpm -Uvh ./*.rpm --nodeps --force)
安装nginx
下载安装包
进入官方下载地址http://nginx.org/en/download.html,选择需要的版本下载,并上传至服务器,进入文件所在目录,通过命令解压;
tar -zxvf nginx-1.21.0.tar.gz
配置、编译和安装;
1、配置,一般使用默认配置即可,默认配置会将nginx文件生成到/usr/local/nginx下,如果需要生成到指定文件夹可以添加描述。进入安装包目录,通过执行configure命令进行配置:
# 默认配置
./configure
# 文件生成到/data/nginx下
./configure --prefix=/data/nginx
2、编译和安装
make
make install
4、执行完以上命令后进入指定文件夹,如果生成了conf和sbin文件夹就说明安装成功了;
5、进入conf中根据需求修改nginx.conf,配置文件说明会在下面进行说明;
6、进入sbin文件夹,启动nginx就可以了
#启动
./nginx
#重启
./nginx -s reload
#关停
./nginx -s stop
7、通过ps -ef | grep nginx 查看是否启动成功;
nginx使用
nginx的使用主要通过nginx.conf文件进行配置;首先先介绍一下该配置文件的常用参数说明:
#nginx进程数,建议设置为当前主机的CPU总核心数。
worker_processes 4;
#工作模式与连接数上限
events {
#单个进程最大连接数
worker_connections 1024;
}
#http服务器设定
http {
#upstream做负载均衡,通过weight定义服务器权重,weight越大则被分配访问的几率越大
upstream etticketjq{ #服务器集群名称(etticketjq)
server 10.188.70.9:10020 weight=1;
server 10.188.70.10:10020 weight=1;
server 10.188.70.11:10020 weight=1;
}
#虚拟主机配置
server {
listen 8081;#监听端口
server_name localhost;
#反向代理
location / {
proxy_pass http://etticketjq;#反向代理访问地址
proxy_redirect default;
}
location /lashUpTktsFile { #/lashUpTktsFile,则转到10服务器
proxy_pass http://10.188.70.10:10020;
}
}
}
使用示例
1、将10.188.70.9:10020、10.188.70.10:10020、10.188.70.11:10020负载到本机10010端口配置如下:
#服务器集群
upstream etticketjq{ #服务器集群名称
server 10.188.70.9:10020 weight=1;
server 10.188.70.10:10020 weight=1;
server 10.188.70.11:10020 weight=1;
}
server {
listen 10010;
server_name localhost;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://etticketjq;
proxy_redirect default;
}
2、请求转发和关键字拦截,将10030端口的请求转发至172.26.92.22:10040端口对应服务,同时将/lashUpTktsFile 接口请求转发只10050端口服务,配置如下:
server {
listen 10030;
server_name localhost;
location / {
proxy_pass http://172.26.92.22:10040;
}
location /lashUpTktsFile { #/lashUpTktsFile,则转到10服务器
proxy_pass http://172.26.92.22:10050;
}
}