CentOS 7 安装配置 nginx

CentOS 7.6.1810 安装配置 nginx 1.16.0

1、安装nginx依赖包

yum install -y pcre pcre-devel
yum install -y openssl openssl-devel
yum install -y zlib zlib-devel
yum install -y gcc gcc-c++

2、创建目录并进入

mkdir -p /usr/local/nginx && cd /usr/local/nginx

3、下载t安装包

wget http://nginx.org/download/nginx-1.16.0.tar.gz

4、解压安装包

/usr/bin/tar -zxvf nginx-1.16.0.tar.gz

5、编译安装nignx 1.16.0

cd nginx-1.16.0 && ./configure --with-http_ssl_module
make && make install

6、设置软连接,启动并测试配置文件是否成功

ln -s /usr/local/nginx/sbin/nginx /sbin/ && nginx && nginx -t

7、开启防火墙端口和http协议

firewall-cmd --add-port=443/tcp
firewall-cmd --add-port=80/tcp
firewall-cmd --add-service=http

8、或者直接关闭防火墙

systemctl stop firewalld
service iptables stop

9、其它常用指令

/usr/local/nginx/sbin/nginx -s reload  重启nginx
/usr/local/nginx/sbin/nginx -s stop    停止nginx
/usr/local/nginx/sbin/nginx            启动ningx
netstat -tunlp                         查看端口占用(80443ps -ef |grep nginx                     查看ningx进程
kill -QUIT ‘nginx主进程号’              停止进程
kill TERM nginx主进程号                 快速停止
kill -9 进程号                          强制停止
kill -HUP nginx主进程号                 平滑重启

10、编译时创建用户

groupadd nginx                      # 创建nginx组
useradd nginx -g nginx -s /sbin/nologin -M     # 添加nginx用户并加入nginx组
--user=nginx                        # 编译时用户参数 
--group=nginx                       # 编译时组参数
vim /usr/local/nginx/conf/nginx.conf         # 编译安装完成以后,修改nginx.conf
user nginx nginx;

11、其它参考资料

nginx负载均衡
nginx负载均衡策略

(1)轮询:轮流处理请求,每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器宕掉,自动剔除,剩下的继续轮询。
upstream myServer {
server 192.168.1.1:9090 down; //down            表示此节点不参与负载
server 192.168.1.1:6060 fail_timeout=10s max_fails=2;      10S内连接失败2次就认为这个服务器工作不正常
server 192.168.1.1:7070 backup;               当其他所有的非backup机器宕机时,才会请求backup机器
}

down 表示服务器永久停机,不参与负载
bakcup 表示服务器为备用服务器,当其他服务器全部停机时,请求才会发送到这里
fail_time 服务器会被认为停机的时长,默认为10s
max_fails 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout fail_timeout与max_fails要关联使用,一台服务器在fail_timeout内出现了max_fails次失败,则认为这台服务器已经挂掉,然后在fail_timeout时间后会尝试重新连接。
nginx负载均衡的默认策略为轮询方式,在轮询中,如果服务器donw了,会自动剔除该服务器。

(2)权重:通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
upstream myServer {
server localhost:8080???weight=2;?
server localhost:8082???backup;??
server localhost:8083???max_fails=3 fail_timeout=20s;?
}
权重方式可以与ip_hash和 least_conn结合使用。

(3)IP地址哈希(ip_hash):每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。
upstream myServer {
ip_hash;
server localhost:8080 weight=2;
server localhost:8081;
}

(4)最少连接(least_conn):web请求会被转发到连接数较少的服务器上,适合请求处理时间长短不一造成服务器过载的情况
upstream myServer {
least_conn;
server localhost:8080 weight=2;
server localhost:8081;
server localhost:8082 backup;
server localhost:8083 max_fails=3 fail_timeout=20s;??
}

(5)最短响应时间(fair):按照服务器端的响应时间来分配请求,响应时间短的优先分配。
upstream myServer {
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
fair;
}


(6)URL地址哈希(url_hash):按访问的url进行分配,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,造成不必要的多次下载。使用url_hash后同一url每次到达一台服务器,可以缓存资源,不会造成多次下载。
upstream myServer {
hash $request_uri;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}

【注】
Nginx proxy_pass后的url加不加/的区别
在nginx中配置proxy_pass时,若url中端口号后无内容,当在后面的url加上了/相当于是绝对根路径。则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。若端口号后有内容,则无论后面是否有/,都不会把location中匹配的路径部分代理走。

官网操作指南

编译参数参考一
编译参数参考二
编译参数参考三

posted @ 2019-07-24 14:20  让未来到来  阅读(557)  评论(0编辑  收藏  举报