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 /usr/local/nginx/conf/
配置加密虚拟主机
server{
listen 443 ssl;
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;
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;
}
点击访问小程序
领取专属 10元无门槛券
私享最新 技术干货