目录
虚拟主机
Nginx配置
nginx结构
添加工作进程worker
配置文件解析
配置负载均衡
配置重定向url
虚拟主机
配置文件地址: /usr/local/nginx/conf/nginx.conf
有效信息只有开头到location{}处,大括号之后的部分可以删除掉,文件末尾大括号不要删除。如下图
server 代表一个主机,新建一个server代表新建一个虚拟主机
server_name 代表一个网站
lication(匹配) 【url】{
root(指令,启动相应模块) html;
index(默认引导页) index.php ......;
}
修改如下
保存信息,重启服务
配置windows访问机器的host文件 添加192.168.0.127 www.haha.com
在nginx文件下html目录新建文件夹haha,将index。html 拷贝到haha文件夹中。随便修好这个index内容
在浏览器中访问www.haha.com 效果如下图
进阶方法:
将nginx.conf 文件中的两个server拷贝到其他文件夹,在ngin.conf中include 类似于apche中的用法
nginx.conf文件
vhosts/www.haha.com文件
Nginx配置
新增url 需要在配置文件中添加该url,如下图
nginx结构
核心模块:HTTP模块,EVENT模块,MAIL模块
基础模块:HTTP Access模块 HTTP FastCGI模块 HTTP Proxy模块,HTTP Rewrite模块
第三方模块:HTTP Upstream Request Hash 模块 Notice模块 HTTP Access Key模块
添加工作进程worker
修改配置文件nginx.conf 中的worker_processes 后面对应的数量
master process进程用来管理工作进程
配置文件解析
#定义Nginx运行的用户和组
user www www;
#启动进程,通常设置成和cpu的数量相等(逻辑内核)
worker_processes 8;
#为每个进程分配cpu,将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#这个指令是 一个nginx进程最多打开的文件描述符数目,理论上应该写最多
#ulimit -n 查看
worker_rlimit_nofile 102400;
#全局错误日志和pid文件 错误日志界别 [debug | info | notice | warn | error |crit ]
error_log /usr/local/nginx/logs/error.log info;
pid /usr/local/nginx/nginx.pid
#工作模式及连接上线
events{
use epoll; #工作方式
worker_connections 1240; #单个进程连接数上线
multi_accept on; #尽可能多的接收请求
}
#设置http服务器,利用它的反向代理功能提供负载均衡支持
http{
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#设置日志格式
access_log /usr/local/nginx/log/nginx/access.log;
sendfile on;
#sendfile指令 指定nginx是否调用sendfile函数(zero copy 方式)输出文件。普通应用设置为on
#如果用来下载应用等重负载应用,可以设置为off,以平衡磁盘与网络io速度,降低系统的uptime
#autoindex on; #开启目录列表访问,适合下载服务器,默认关闭
tcp_nopush on; #防止网络阻塞
keepalive_timeout 60; #超时时间 同时避免重新建立连接
tcp_nodelay on; #提高数据的实时响应性
#开启gzip压缩
gzip on;
gzip_min_length 1k; #压缩的最小文件大小,小于1k,不压缩
gzip_bufers 4 16k; #压缩缓存
gzip_http_version 1.1;
gzip_comp_level 2;#压缩级别大小,最大9 值越小,压缩比例越小,cpu处理更快。
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 10m; #允许客户端请求的最大单个文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
#gzip_disable "MSIE [1-6].";
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理)
proxy_send_timeout 90; #后端数据库数据回传时间(代理)
proxy_read_timeout 90; #连接成功,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话 这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲区大小
#设定请求缓冲
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
#设定虚拟主机配置
server {
#侦听80端口
listen 80;
#定义使用 www.nginx.cn访问
server_name www.nginx.cn;
#定义服务器的默认网站根目录位置
root html;
#设定本虚拟主机的访问日志
access_log logs/nginx.access.log main;
#默认请求
location / {
#定义首页索引文件的名称
index index.php index.html index.htm;
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
#过期30天,静态文件不怎么更新,过期可以设大一点,
#如果频繁更新,则可以设置得小一点。
expires 30d;
}
#PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#禁止访问 .htxxx 文件
location ~ /.ht {
deny all;
}
}
}
配置负载均衡
1.在nginx.conf中http中添加负载均衡 可以添加多个server
weight 服务器权重,越小越高,向他转发的数量就越多
在fail_timeout时间内,有max_fails次失败连接,则该服务器不可用,只要fail_timeout时间后再次验证,直到可用为止
2.在www.haha.com虚拟主机的配置文件中,添加模块名称,访问来临时,代理转发
配置重定向url
在server中添加 重定向到百度
rewrite ^/(.*) http://www.baidu.com/$1 permanent;
rewrite 最后一项flag参数:
标记符号 | 说明 |
last | 本条规则匹配完成后继续向下匹配新的location URI规则 |
break | 本条规则匹配完成后终止,不在匹配任何规则 |
redirect | 返回302临时重定向 |
permanent | 返回301永久重定向 |