1.nginx软件安装 useradd nginx tar -zxvf nginx-1.7.10.tar.gz cd nginx-1.7.10 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module make && make install 2.nginx的配置文件及目录 /usr/local/nginx/ 安装目录 conf/nginx.conf 主配置文件 html 网页目录 logs 日志文件 sbin/nginx 启动脚本 3.nginx进程管理 启动nginx服务,sbin/nginx -c conf/nginx.conf 常用选项 -v:查看nginx版本 -V:查看编译参数 -t:测试默认配置文件 -c:指定配置文件 停止nginx:pkill -9 nginx 4.平滑升级nginx tar axf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module make cd /usr/local/nginx/sbin mv nginx nginxold cd nginx-1.8.0/objs/ cp nginx /usr/local/nginx/sbin/ make upgrade nginx -v 5.nginx配置解析 配置文件结构
全局配置 http{ …… server{ …… location /{ …… }
}
}
全局选项 user nginx; worker_processes 1; error_log /var/log/nginx/error.log/ pid /var/run/nginx.pid events{ worker_connections 1024; } 配置容器 http{ server{ listen 80; server_name localhost; location / { root html; index index.html index.htm; } } }
用户认证及访问控制 location / { root html; index index.html; allow 192.168.8.1; deny all; auth_basic "auth-domain"; auth_basic_user_file /usr/local/nginx/conf/authuser.txt; }
htpasswd -c /usr/local/nginx/conf/authuser.txt admin 6.nginx虚拟主机 三种模式的虚拟主机 基于域名的虚拟主机 server{ listen 80; server_name web1.com; …… } server{ listen 80; server_name web2.com; } server{ listen 80 default; location /{ root /default; index index.html; } } 基于端口的虚拟主机 server { listen 8080; server_name web1.com; } server{ listen 8000; server_name web2.com; } 基于IP的虚拟主机 server{ listen 192.168.0.1:80; server_name web1.com; } server{ listen 192.168.0.2:80; server_name web2.com; }
SSL虚拟主机 生成密钥:openssl genrsa -out cert.key 2048 生成证书:openssl req -new -x509 -key cert.key -out cert.pem cp {cert.key,cert.pem} /usr/local/nginx/conf/ 配置加密虚拟主机 server{ listen 443 ssl; server_name www.test.com; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; …… location /{ root html; index index.html index.htm; } } 7.nginx反向代理 nginx反向代理语法格式: http{ upstream servergroup{ server 192.168.1.2; server 192.168.1.3; }
server { listen 80; server_name www.baidu.com; location /{ …… proxy_pass http://servergroup; } } }
高级设置负载均衡分配方式 nginx目前支持四种分配方式: 轮询:默认的,逐一循环调度 weight:权重,指定轮询几率,权重值和访问比率成正比 ip_hash:根据客户端IP分配固定的后端服务器 Fair:按后端服务器响应时间短的优先分配
服务组主机状态: down:表示server暂时不参与负载 max_fails:允许请求失败的次数,默认为1 fail_timeout:max_fails次失败后,暂停提供服务的时间 backup:备份服务器 示例 upstream servergroup{ #ip_hash; server 192.168.2.1:80 weight=2; server 192.168.2.2:80 down; server 192.168.2.3:80; server 192.168.2.4:80 backup; server 192.168.2.5:80 max_fails=2 fail_timeout 30; }