一、什么是nginx
主要为优化性能,是一种反向代理,负载均衡服务器,支持热部署(启动容易,并且可以做到7*24不间断运行,即使运行数个月也不需要启动,还可以在不间断服务的情况下,对软件进行版本升级)。
二、安装和编译
1.下载nginx
get nginx-1.14.0.tar.gz
2.解压
tar zxf nginx-1.14.0.tar.gz
3.安装软件,安装后才能够进行编译操作
yum instal gcc pcre-devel openssl-devel -y
4.源码编译三步:
cd nginx-1.14.0
/configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_status_module --with-threads --with-file-aio
make
make install
5.运行nginx
cd /usr/local/nginx/sbin/
./nginx
6.查看本地服务器是否为nginx
curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Mon, 01 Oct 2018 12:19:31 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 01 Oct 2018 12:17:40 GMT
Connection: keep-alive
ETag: "5bb21064-264"
Accept-Ranges: bytes
服务器为nginx/1.14.0,若需要伪装服务器名称,可以进行如下步骤:
(1)关闭nginx
./nginx -s stop
(2)删除前面编译出来的文件
cd /usr/local/nginx
rm -rf *
(3)将编译的结果清除
cd nginx-1.14.0
make clean
(4)修改显示的名称,去掉版本号
vim nginx-1.14.0/src/core/nginx.h
#define NGINX_VER "nginx"
(5)注释掉debug
vim nginx-1.14.0/auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g"
(6)设置完毕,重新编译:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_status_module --with-threads --with-file-aio
make
make install
(7)制作软链接,可以直接输入nginx就启动服务
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx 启动
(8)查看服务器名称修改情况:
curl -I localhost
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 01 Oct 2018 12:25:26 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 01 Oct 2018 12:24:24 GMT
Connection: keep-alive
ETag: "5bb211f8-264"
Accept-Ranges: bytes
三、nginx的配置文件
1.打开配置文件
vim /usr/local/nginx/conf/nginx.conf
2.配置文件的修改
user nginx nginx; 用户为nginx 组为nginx
worker_processes 2; 同时工作的进程为2
worker_cpu_affinity 01 10;
events { 最大可以打开文件数
worker_connections 65535;
}
http {
upstream westos {
sticky; (ip_hash :同一个ip访问后端服务器不变)
server 172.25.39.2:80; 两台真实服务器(weight = 2 访问两次,down 手动后台关闭)
server 172.25.39.3:80;
server 127.0.0.1:8080 backup;(vim /etc/httpd/conf/httpd.conf中将端口换成8080)
}
server {
listen 80;
server_name www.westos.org;
location / {
proxy_pass http://westos;
}
}
3.检查语法错误
nginx -t
4.重新加载
nginx -s reload
5.查看运行的程序
ps aux
lscpu
6.添加nginx用户
useradd -M -d /usr/local/nginx/ -u 800 nginx
7.查看某普通用户可打开文件个数
ulimit -a
sysctl -a | grep file
vim /etc/secudrity/limits.conf
nginx - nofile 65535 系统支持最大文件数
8.在测试主机测试:
curl www.westos.org
四、sticky
依靠cookie实现负载均衡,一个浏览器中的route对应一个服务器
1.下载安装包和解压
get nginx-goodies-nginx-sticky-module-ng-0..zip
unzip nginx-goodies-nginx-sticky-module-ng-0..zip
2.清除以前的编译记录
cd nginx-1.14.0
make clean
3.编译:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_status_module --with-threads --with-file-aio --add-module=/var/ftp/pub/nginx-goodies-nginx-sticky-module-ng-0..
make
make install
4.更改配置文件
cd /usr/local/nginx/conf
vim nginx.conf
http {
upstream westos {
sticky;(静态模块,基于cookie的负载均衡解决方案,来使同一个客户端的请求落在同一台服务器上)
server 172.25.39.2:80; 两台真实服务器(weight = 2 访问两次,down 手动后台关闭)
server 172.25.39.3:80;
#server 127.0.0.1:8080 backup;(vim /etc/httpd/conf/httpd.conf中将端口换成8080)
}
5.在浏览器上进行测试
www.westos.org