安装
采用源码安装
- 下载源码
- 解压
tar -zxvf nginx-1.12.0.tar.gz
- 编译安装
切换源码目录
./configure –prefix=/opt/nginx/编译安装
make && make install
基本使用
- 进入nginx目录
cd /opt/nginx/
- 定制网站
gninx的工作目录
conf
配置文件目录html
网页根目录,你的index.html就放在这里,然后通过域名访问logs
日志sbin
存放nginx可执行命令的修改/opt/nginx/html/index.html 这是nginx网页根文件,清空内容写入自己的html标签
- 启动nginx服务器
/opt/nginx112/sbin/nginx
- 浏览器访问http://192.168.13.79
nginx配置文件nginx.conf
Nginx主配置文件/opt/nginx/nginx.conf
是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}
来表示开始与结束。下面只介绍常用的配置,完整配置解析放于本文结尾
worker_processes 4; nginx工作进程数,根据cpu的核数定义
events {
worker_connections 1024; # 连接数
}http {
include(关键字) mime.types(可修改的值);
default_type application/octet-stream; #定义日志格式
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;
#开启访问日志功能的参数
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
#保持长连接
keepalive_timeout 65;
#支持图片 gif等等压缩,减少网络带宽
gzip on; #这个server标签 控制着nginx的虚拟主机(web站点)
server {
#定义nginx的入口端口是80端口
listen 80;
#填写域名,没有域名就写ip地址
server_name www.test1.com;
#定义编码
charset utf-8;#location定义网页的访问url
#就代表 用户的请求 是 192.168.13.79/
location / {
#root参数定义网页根目录
root html;
#定义网页的首页文件,的名字的
index index.html index.htm;
}
#定义错误页面,客户端的错误,就会返回40x系列错误码
error_page 404 403 401 400 /404.html;
#500系列错误代表后端代码出错
error_page 500 502 503 504 /50x.html;
}
#在另一个server{}的外面,写入新的虚拟主机2
server{
listen 80;
server_name www.test2.com;
location / {
root /opt/myserver/test2; #定义虚拟主机的网页根目录
index index.html;
}
}}
虚拟主机
- 准备两个虚拟主机的网页根目录内容
/opt/myserver/
├── test1
└── index.html 写入自己的内容
└── test2
└── index.html 写入自己的内容
1 | worker_processes 1; |
- 修改本地的测试域名,此处使用windows访问,(因为没有两个域名,因此要在本地搞一个测试域名)
C:\Windows\System32\drivers\etc\hosts
192.168.13.79 www.test1.com
192.168.13.79 www.test2.com
- 浏览器访问测试
访问功能
- 开启nginx.conf中的日志参数
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;#开启访问日志功能的参数
access_log logs/access.log main;
- 检查access.log的日志信息
tail -f access.log
- nginx的拒绝访问功能
location / {
#拒绝参数是 deny
#deny 写你想拒绝的IP地址
#deny还支持拒绝一整个网站
deny 192.168.13.33;
root /opt/myserver/test1;
index index.html;
}
- nginx的错误页面优化
改nginx.conf 中的配置参数
这个40x.html存在 虚拟主机定义的网页根目录下
error_page 404 40x.html;
Nginx代理
正向代理
正向代理,他的工作原理就像一个跳板(VPN),简单的说:
我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。
反向代理
对于客户端而言,代理服务器就像是原始服务器
对于客户端而言,代理服务器就像是原始服务器
ngx_http_proxy_module
proxy代理模块,用于把请求抛给服务器节点或者upstream服务器池
实现一个简单的反向代理
nginx自带了反向代理的功能
- 两台服务器
nginx1 192.168.13.79 作为web服务器
nginx2 192.168.13.24 作为反向代理服务器用户 通过浏览器去访问 代理
浏览器访问 192.168.13.24 > 192.168.13.79
- 在反向代理服务器中添加配置
1 | worker_processes 1; |
- 检查语法并启动nginx
/opt/nginx1-12/sbin/nginx -t
nginx: the configuration file /opt/nginx1-12/conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx1-12/conf/nginx.conf test is successful
nginx负载均衡
集群的概念:一堆服务器做一件事
- 准备三台计算机
nginx1 192.168.13.121 作为nginx负载均衡器
nginx2 192.168.13.24 web服务,提供一个页面
nginx3 192.168.13.79 web服务,提供一个页面
- 配置两个nginx web页面
192.168.13.24 准备一个 index.html 写入 我是192.168.13.24
192.168.13.79 准备一个 index.html 写入 我是192.168.13.79
- 然后启动两个nginx web 服务
- 准备一个nginx负载均衡器
192.168.13.121机器上,修改nginx.conf
定义一个负载均衡池,负载均衡的算法有
调度算法 概述
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发1.轮询(不做配置,默认轮询)
2.weight权重(优先级)
3.ip_hash配置,根据客户端ip哈希分配,不能和weight一起用写入
upstream webserver {
ip_hash;
server 192.168.13.79 ;
server 192.168.13.24 ;
}
- 在虚拟主机中添加 反向代理配置,将用户的请求,直接转发给负载均衡池中的服务器
server {
listen 80;
#当我的请求来自于 192.168.13.121时,走这>个虚拟主机
server_name 192.168.13.121; #charset koi8-r;
#access_log logs/host.access.log main;
#核心配置,就在这,一条proxy_psss参数即可
location / {
proxy_pass http://webserver;
#root html;
#index index.html index.htm;
}}
启动负载均衡器的 nginx服务
访问,负载均衡器 192.168.13.121 ,查看请求分发的结果
nginx.conf详解
1 | ######Nginx配置文件nginx.conf中文详解##### |