nginx代理入门配置

我们用nginx一般都是当作反向代理服务器使用的,那么为什么要使用反向代理呢?

作用1 可以起到保护网站安全的作用,可以设置任何来自Internet的请求都必须先经过代理服务器。
作用2 通过缓存静态资源,加速Web请求。
作用3 实现负载均衡。(顺便说下,目前市面上,主流的负载均衡方案,硬件设备有F5,软件方案有四层负载均衡的LVS,七层负载均衡的Nginx、Haproxy等)
等等。。。

这个图很直观

 nginx代理入门配置


nginx代理入门配置

 

虚拟主机配置方式:

基于IP的虚拟主机
可以在一块物理网卡上绑定多个IP地址,需要设置IP别名
server {
    listen      192.168.204.131:80;
    server_name 192.168.204.131;
    root /data/blog;
}
server {
    listen      192.168.204.132:80;
    server_name 192.168.204.132;
    root /data/bbs;
}

基于域名的虚拟主机(最通用常见)
如果没有特殊要求使你必须用一个基于lP的虚拟主机,最好还是使用基于域名的虚拟主机
server {
    listen      80;
    server_name www.blog.com;
    location / {
      root   /usr/local/dev/nginx/page/blog;
      index  index.html;
    }
}
server {
    listen      80;
    server_name www.bbs.com;
    location / {
      root   /usr/local/dev/nginx/page/bbs;
      index  index.html;
    }
}

基于端口的虚拟主机(不常见,一般对外都只开放80,443端口)
server {
    listen 8080;
    root /usr/local/dev/nginx/page/blog;
}
server {
    listen 9090;
    root /usr/local/dev/nginx/page/bbs;
}

 

日志nginx.conf配置

日志指令有2个,一个是log_format 用来设置日志的格式,一个是access_log 用来设置日志的路径,格式和缓存大小
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;

$remote_addr, $http_x_forwarded_for 记录客户端IP地址
$remote_user 记录客户端用户名称
$request 记录请求的URLHTTP协议
$status 记录请求状态
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent 发送给客户端的总字节数。
$connection 连接的***。
$connection_requests 当前通过一个连接获得的请求数量。
$msec 日志写入时间。单位为秒,精度是毫秒。
$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)。
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$time_iso8601 ISO8601标准格式下的本地时间。
$time_local 通用日志格式下的本地时间。

Centos 6.7上的Nginx的安装部署

方式1:

 http://nginx.org/download/nginx-1.10.3.tar.gz 下载解压

方式2:
 yum install nginx

nginx集群配置策略

策略1 none(轮询 默认)
nginx代理入门配置

策略2 weight(权重)
nginx代理入门配置

策略3 ip_hash(访问ip)每个访客访问固定的一台后端服务器,可以解决用户session问题
nginx代理入门配置

策略4 fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配
nginx代理入门配置

策略5 url_hash(第三方)和IP哈希类似,只不过针对请求的url进行hash(基于缓存的server,页面静态化)
nginx代理入门配置

组合用法:

nginx代理入门配置

我的配置:

nginx代理入门配置

nginx代理入门配置

通用配置放在nginx.conf

其余具体的业务安装来源域名来分开在conf.d配置多个规则,如上步骤12345