Linux安装Nginx
简介:是一个高性能的HTTP和反向代理web服务器,道听途说可高达5W个并发连接数。主要有反向代理、负载均衡、动静分离。
系统平台:Centos 7
Nginx安装配置
下载地址:http://nginx.org/en/download.html
1、安装编译工具及库文件
>yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、安装 PCRE
>cd /usr/local/src/ >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(版本自选,有安装包直接xftp上传即可)
> cd /usr/local/src/ > wget http://nginx.org/download/nginx-1.6.2.tar.gz
4、解压后编译安装(路径按需修改)
> ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
> make
> make install
Tips:
报错1:编译安装报错解决:在nginx目录下的 /objs/Makefile 找到 -Werror 并去掉 在重新make即可
===》CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g
报错2:make[1]: Leaving directory `/xx/nginx'
没有新建文件夹,可继续执行下一步
5、常用命令(需在安装的sbin目录下,不是解压目录)
> nginx # 启动 > nginx -s reload # 重新载入配置文件 > nginx -s reopen # 重启 Nginx > nginx -s stop # 停止 Nginx > nginx -v # 查看版本 > nginx -V # 版本信息外还显示配置参数信息 > nginx -t # 查看配置信息是否正确 修改必执行
6、第4步可不要后缀直接 ./configure
安装成功后,在usr多出一个文件夹local/nginx,nginx有sbin的启动脚本,配置文件路径:usr/local/nginx/conf/nginx.conf
> firewall-cmd --list-all #查看开放的端口号 > /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT; #开放端口号 > firewall-cmd -reload #重启防火墙
7、vi nginx.conf端口可自行修改,默认80,外部访问可关闭防火墙或者开端口
使用:proxy_pass http://myserver; #请求转向mysvr 定义的服务器列表
a、轮询(默认)/加权轮询:每个请求按时间顺序逐一分配到不同的后端服务器;
upstream myserver{ server 127.0.0.1:8080 weight=1; #server1 server 127.0.0.1:8081 weight=1; #server2 }
b、热备:挂了一台热备才会使用
upstream myserver { server 127.0.0.1:8080 ; server 127.0.0.1:8081 backup; #热备 }
c、is_hash:会让相同的客户端ip请求相同的服务器。
upstream myserver { server 127.0.0.1:8080; server 127.0.0.1:8081; is_hash; }
d、fair(第三方):安装服务器的响应时间来分配请求,响应时间短的优先分配
upstream myserver { server 127.0.0.1:8080; server 127.0.0.1:8081; fair; }
设置:worker数量和服务器的cpu数相等是最为适宜的
连接数worker_connection发送一次请求占用了woker数量为2或者4个(静态、动态)
~:uri包含正则表达式:区分大小写
~*:不区分大小写
Tips:权威配置修改 https://www.runoob.com/w3cnote/nginx-setup-intro.html
8、配置https访问:https://www.cnblogs.com/crazymagic/p/11042333.html
9、动静分离(简例)
- 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。
- 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。
a、准备工作,新建data文件夹,www下放html、image下放图片

b、配置

c、请求
tomcat:http://127.0.0.1
html:http://127.0.0.1/www/test.html
image:http://127.0.0.1/image/
10、高可用集群
a、准备两台服务器192.168.66.128、192.168.66.129;虚拟IP192.168.66.130
b、都安装好nginx和安装keepalived
c、keepalived安装
> yum install keepalived -y #安装后 /etc/keepalived 目录下有keepalived.conf > rpm -q -a keepalived #检查是否已经安装
d、完成高可用配置(主从配置)
vrrp_instance VI_1 { state MASTER #备份服务器将 MASTER 改为 BACKUP interface ens33 #网卡 ifconfig查看 virtual_router_id 51 #主 备值必须相同 priority 100 #主备机取不同的优先级 主大备小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.200.16 } } # 下方新增配置 检查nginx varr_script chk_http_port { script "/usr/local/src/nginx_check.sh" interval 2 weight 2 }
e、在 /usr/local/src 添加检测脚本 nginx_check.sh :此脚本检测nginx进程,不关注内容,若出现有进程但是页面加载不出来的情况,此脚本无用。
#!/bin/bash A=`ps -C nginx --no-header|wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header|wc -l` -eq 0 ];then killall keepalived fi fi
f、两台nginx、keepalived都启动
keepalived> systemctl start keepalived.service
预想效果:访问虚拟IP,主要是访问主服务器,当主服务器宕机后会自动访问备份服务器
实际效果:ip a 也查询到 keepalived 绑定的vip了,但虚拟IP访问不到,原因未明
浙公网安备 33010602011771号