华为鲲鹏服务器采用华为自研cpu ARMv8架构,提供 Windows 和多个Linux 系统
常使用 CentOS 7.6 64bit with ARM
Nginx 和 Apache 一样都是一种 Web 服务器。是基于 REST 架构风格,以统一资源描述符URI 或者统一资源定位符URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。因为Nginx是一个开源的代理服务器,那么我们就可以通把它安装到服务器上,用它来部署我们的web项目。
一、Nginx安装
1、安装编译工具及库文件:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、安装pcre
mkdir mysql
cd mysql
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install
pcre-config --version
3、安装nginx
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
mkdir /usr/local/nginx /*创建一个安装途径
//若采用默认安装途径(pefix),
注意最后安装结果提示--with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/nginx/pcre-8.35 /*产生安装文件./configure
make && make install /*编译以及编译安装
4、 Nginx配置
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
vi/usr/local/nginx/conf/nginx.conf
5.检查校验配置文件nginx.conf的正确性命令:
/usr/local/nginx/sbin/nginx -t
6.启动nginx
/usr/local/nginx/sbin/nginx
ps –ef|grep nginx
二、Nginx配置文件
#nginx进程,一般设置为和cpu核数一样
worker_processes 4;
#错误日志存放目录
error_log /data1/logs/error.log crit;
#运行用户,默认即是nginx,可不设置
user nginx
#进程pid存放位置
pid /application/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
#最大文件打开数(连接),可设置为系统优化后的ulimit -HSn的结果
worker_rlimit_nofile 51200;
cpu亲和力配置,让不同的进程使用不同的cpu
worker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;
#工作模式及连接数上限
events
{use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能worker_connections 1024; #;单个后台worker process进程的最大并发链接数
}
http
{
include mime.types; #文件扩展名与类型映射表
default_type application/octet-stream; #默认文件类型
#limit模块,可防范一定量的DDOS攻击
#用来存储session会话的状态,如下是为session分配一个名为one的10M的内存存储区,限制了每秒只接受一个ip的一次请求 1r/slimit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;limit_conn_zone $binary_remote_addr zone=addr:10m;include mime.types;default_type application/octet-stream;#第三方模块lua防火墙lua_need_request_body on;#lua_shared_dict limit 50m;lua_package_path "/application/nginx/conf/waf/?.lua";init_by_lua_file "/application/nginx/conf/waf/init.lua";access_by_lua_file "/application/nginx/conf/waf/access.lua";#设定请求缓存 server_names_hash_bucket_size 128;client_header_buffer_size 512k;large_client_header_buffers 4 512k;client_max_body_size 100m;#隐藏响应header和错误通知中的版本号server_tokens off;#开启高效传输模式 sendfile on;
三、Nginx负载均衡
HTTP重定向实现负载均衡(负载均衡算法(使用 nginx 中的 upstream模块))
源地址哈希法(ip_hash):根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
轮询法(默认):将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
加权轮询法(权重:数字越大,权重越高越多分配到该机器上):不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。
最小连接数法:由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。
压测:
ab -n 100 -c 100 http://${ip}/
四、在服务器中导入项目
从图中可以看出,项目已经成功部署上去,并把login.html设置为访问的主页面