Nginx Web 服务

1、http协议包含很多功能。
上网的×××w是http功能之一。
×××w服务默认端口80,OSI 第七层 应用层协议。
https 默认端口443,加密的http服务。

2、实现×××w服务的常用web软件。
产品:nginx,apache(解决静态web软件)

3、经典流行的web组合。
lamp(linux apache mysql php) ===》经典
lnmp(linux nginx mysql php)====》国内流行

4、nginx(engine x)介绍
nginx,×××w服务软件,俄罗斯人开发,开源的×××w服务软件,一共780k,c语言开发的。
nginx本身是一款静态(html,js,css,jpg等)的×××w软件,不能解析动态的php,jsp,do。

5、nginx服务从大的方面的功能:
a. ×××w web服务,邮件服务,邮件代理
b.负载均衡(反向代理proxy)
c.web cache(web缓存),相当于squid(CDN主要使用squid)。

6、nginx特点:
最大的特点:静态小文件(低于1M),支持高并发,同时占用的资源很少。3w并发,10个进程,消耗150M。
1)配置简单,灵活,轻量。
2)支持高并发(静态小文件),静态几万的并发。
3)占用资源少。2w并发,开10个线程服务,内存消耗几百M。
4)功能种类比较多(web,cache,proxy),每一个功能都不是特别强。
5)支持epoll模型。使得nginx可以支持高并发。apache使用select模型。
6)nginx可以配合动态服务(fastcgi接口)。
7)利用nginx可以对ip限速,可以限制连接数。

它所具备的其他×××w服务特性如下:
支持基于名字、端口以及IP的多虚拟主机站点。
支持rewrite模块,支持URL重写及正则表达式匹配。
支持基于客户端IP地址和HTTP基本认证的访问控制。
支持http响应速率限制。
支持同一IP地址的并发连接或请求数限制。

7、nginx的应用场景:
1)提供静态服务(图片,视频服务),另一个lighttpd。并发:几万并发。
html,js,css,.flv,jpg,gif等。类似lighttpd。
2)提供动态服务,nginx+fastcgi的方式运行php,jsp。动态并发:500-1500.
apache+php,lighttpd+fcgi php。
3)提供反向代理(proxy)服务,或称为负载均衡。
日PV2000W以下,并发1万以下,都可以直接用nginx做反向代理。
软件:haproxy,硬件:F5,A10
4)提供缓存服务。类似squid,varnish,ats。

8、nginx支持虚拟主机:
一个server标签段就是一个虚拟主机。
a、基于域名的虚拟主机,通过域名来区分虚拟主机
==>应用:外部网站**
b、基于端口的虚拟主机,通过端口来区分虚拟主机
==>应用:公司内部网站,网站的后台

c、基于IP的虚拟主机,几乎不用。不支持ifconfig别名,配置文件可以。

9、安装Nginx:(http://nginx.org)
a、首先安装PCRE
Pcre全称(Perl Compatible Regular Expressions),中文perl兼容正则表达式,官方网站:http://×××w.pcre.org/
HTTP rewrite module requires the PCRE library。
安装: rpm -qa pcre pcre-devel
yum install pcre pcre-devel -y
rpm -qa pcre pcre-devel
b、然后安装OpenSSL
SSL modules require the OpenSSL library。
安装: yum install openssl-devel -y
c、安装nginx

    mkdir -p /home/oldboy/tools
    cd /home/oldboy/tools
    wget -q http://nginx.org/download/nginx-1.6.3.tar.gz    # -q 不显示输出
    useradd nginx -s /sbin/nologin -M
    tar xf nginx-1.6.3.tar.gz
    cd nginx-1.6.3
    ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-http_stub_status_module --with-http_ssl_module
   ` # --prefix=/application/nginx-1.6.3/ 设置安装路径`
     ` --with-http_stub_status_module 加密的ssl模块 --with-http_ssl_module 状态模块`
    make
    make install
    ln -s /application/nginx-1.6.3 /application/nginx  # 创建软链接
    ls -l /application/nginx/

启动nginx服务: /application/nginx/sbin/nginx
查看配置信息(怎么编译的):/application/nginx/sbin/nginx -V
查看日志文件:cat /var/log/messages
查看nginx下的日志文件:cat /application/nginx/logs/error.log
[[email protected] nginx]# ls -l|grep -v temp
总用量 36
drwxr-xr-x 2 root root 4096 12月 18 09:56 conf # 配置文件的目录
drwxr-xr-x 2 root root 4096 12月 18 09:56 html # 默认网站目录(站点)
drwxr-xr-x 2 root root 4096 12月 18 10:07 logs # 错误,访问日志
drwxr-xr-x 2 root root 4096 12月 18 09:56 sbin # 启动命令

10、基于域名的虚拟主机配置步骤:
×××w.etiantian.org ====>html/×××w,浏览域名显示×××w.etiantian.org
bbs.etiantian.org====>html/bbs,浏览域名显示bbs.etiantian.org
a、配置nginx.conf

    [[email protected] conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  ×××w.etiantian.org;
        location / {
            root   html/×××w;
            index  index.html index.htm;
        }
    }
        server {
                listen       80;
                server_name  bbs.etiantian.org;
                location / {
                    root   html/bbs;
                    index  index.html index.htm;
            }
        }
}

将配置文件里所有的注释行都过滤出去:
[[email protected] conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf
b、创建站点目录

    [[email protected] conf]# mkdir ../html/{×××w,bbs} -p
    [[email protected] conf]# echo "×××w.etiantian.org" > ../html/×××w/index.html
    [[email protected] conf]# echo "bbs.etiantian.org" > ../html/bbs/index.html

c、检查语法,重新加载nginx

    [[email protected] conf]# /application/nginx/sbin/nginx -t
    [[email protected] conf]# /application/nginx/sbin/nginx -s reload

d、配置hosts,测试:
linux client:

       [[email protected] conf]# tail -1 /etc/hosts
       192.168.153.135 ×××w.etiantian.org bbs.etiantian.org    # 添加这一行
       [[email protected] conf]# curl ×××w.etiantian.org           # 测试
       ×××w.etiantian.org
       [[email protected] conf]# curl bbs.etiantian.org
       bbs.etiantian.org
windows:
  C:\Windows\System32\drivers\etc\hosts
  添加这一行:192.168.153.135 ×××w.etiantian.org bbs.etiantian.org  # Ctrl + s 保存
  浏览器里访问×××w.etiantian.org bbs.etiantian.org域名。 

11、利用include功能优化Nginx的配置文件。
a、配置nginx.conf文件``

   [[email protected] conf]# cat nginx.conf
   worker_processes  1;
   events {
   worker_connections  1024;
   }
   http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        #nginx vhosts config
        include extra/×××w.conf;
        include extra/bbs.conf;
        include extra/blog.conf;
   }

b、创建extra目录然后在目录下对应的文件添加配置。

    [[email protected] conf]# mkdir extra
    [[email protected] conf]# sed -n "10,17p" nginx.conf.ori.1 >extra/×××w.conf
    [[email protected] conf]# sed -n "18,25p" nginx.conf.ori.1 >extra/bbs.conf
    [[email protected] conf]# sed -n "26,33p" nginx.conf.ori.1 >extra/blog.conf

c、重新加载nginx服务
` [[email protected] conf]# ../sbin/nginx -s reload `

12、Nginx别名作用及配置实战。
a、在extra/×××w.conf下添加别名。

  [[email protected] conf]# cat extra/×××w.conf ``
    server {
        listen       80;``
        server_name  ×××w.etiantian.org etiantian.org;
        location / {
            root   html/×××w;
            index  index.html index.htm;
        }
    }

b、在linux下/etc/hosts下做DNS解析。

        [[email protected] conf]# tail -1 /etc/hosts
        192.168.153.135 ×××w.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org

c、重加加载nginx服务。

13、Nginx状态信息配置实战。
a、查看状态配置信息``

    [[email protected] conf]# ../sbin/nginx -V
    nginx version: nginx/1.6.3
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
    TLS SNI support enabled
    configure arguments: --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-  http_stub_status_module --with-http_ssl_module

b、生成状态配置,并增加状态配置参数。

cat >>/application/nginx/conf/extra/status.conf<<EOF
##status
server {
       listen 80;
       server_name status.etiantian.org;
       location / {
          stub_status on;
          access_log off;
       }
    }
EOF

c、在配置文件里写入状态的文件名,并配置DNS解析,最后重新加载。

[[email protected] conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #nginx vhosts config
        include extra/×××w.conf;
        include extra/bbs.conf;
        include extra/blog.conf;
        include extra/status.conf;
 }   

14、一、访问日志作用及格式。
a、找出日志配置

         [[email protected] conf]# sed -n "21,23p" nginx.conf.default
         #log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
         #                  ‘$status $body_bytes_sent "$http_referer" ‘
         #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
b、将上面的日志配置放到nginx.conf主配置里。````
        [[email protected] conf]# cat nginx.conf
        worker_processes  1;
        events {
        worker_connections  1024;
        }
        http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                          ‘$status $body_bytes_sent "$http_referer" ‘
                          ‘"$http_user_agent" "$http_x_forwarded_for"‘;
       #nginx vhosts config
        include extra/×××w.conf;
        include extra/bbs.conf;
        include extra/blog.conf;
        include extra/status.conf;
       }
 二、记录日志
   a、默认配置:access_log logs/access.log combined
                           访问日志       日志文件             格式
        将配置分别放到extra/×××w.conf extra/bbs.conf extra/blog.conf文件下。
            [[email protected] conf]# cat extra/×××w.conf
            server {
                   listen       80;
                   server_name  ×××w.etiantian.org etiantian.org;
                   location / {
                   root   html/×××w;
                  index  index.html index.htm;
            }
                  access_log logs/access_×××w.log main;
            }        #在网页上访问可以查看日志的实时变化:tail -f ../logs/access_×××w.log
  b、访问日志优化及工作日志轮询。
        [[email protected] scripts]# cat cut_nginx_log.sh
#########################################################################
# File Name: cut_nginx_log.sh
# Author: yushanshuai
# mail: [email protected]
# Created Time: 2017年12月21日 星期四 07时38分10秒
#########################################################################
#!/bin/bash
Dateformat=`date +%Y%m%d`
Basedir="/application/nginx"``
Nginxlogdir="$Basedir/logs"
Logname="access×××w"
[ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1
[ -f ${Logname}.log ]||exit 1
/bin/mv ${Logname}.log ${Dateformat}${Logname}.log
$Basedir/sbin/nginx -s reload

然后放到定时任务里:规定每天00点生成一个日志。(查看:ll /application/nginx/logs/)

[[email protected] scripts]# crontab -l``
     echo yushanshuai >>/server/log/oldboy.txt
#cron job for ett by oldboy 2017-6-30
00 09,14   6,0 /bin/sh /server/script/oldboy.sh >/dev/null 2>&1
00 /2    /bin/sh /server/scripts/tar.sh >/dev/null 2>&1
################nginx log
00 00    /bin/sh /server/scripts/cutnginxlog.sh & >/dev/null

15、nginx rewrite 301跳转实战案例
a、将配置放到配置文件里。

  ``  [[email protected] conf]# cat extra/×××w.conf
    server {
            listen       80;
            servername etiantian.org;
            rewrite ^/(.) http://×××w.etiantian.org/$1 permanent;
    }
    server {
        listen       80;
        servername  ×××w.etiantian.org;
        location / {
            root   html/×××w;
            index  index.html index.htm;
        }
            accesslog logs/access×××w.log main;
    }

b、重新加载后,查看:curl etiantian.org -I*

原文地址:http://blog.51cto.com/13688462/2321527

时间: 2024-11-02 23:29:20

Nginx Web 服务的相关文章

Nginx Web 服务详解

一.初识Nginx软件 Nginx是一款非常优秀的web服务软件,不但可以做web服务软件,还可以做反向代理负载均衡和前端业务的缓存服务 作为web服务软件Nginx是一个支持高性能高并发的web服务软件,它具有很多优秀的特性,作为web服务器与apache相比nginx可以支持更多的并发连接访问,但占用的资源却更少,效率更高,在功能上也强大了许多 作为反向代理或负载均衡服务在反向代理或负载均衡反面nginx可以作为web服务.php等动态服务及Memcached缓存代理服务,它具有类似专业反向

nginx web服务理论与实战

Nginx LNMP(linux nginx mysql php)也叫LEMP(linux engin x nginx mysql php) 3w并发, 10线程,只需150m内存....稍有点夸张,也说明优秀. nginx的一下功能: a.www web服务 b.负载均衡(反向代理) c.web cache(web缓存) nginx的优点: 0.配置简单.灵活. 1.高并发(静态小文件),静态1-2w,apache并发3-5千. 2.占用资源少. 3.功能多,每一个功能都不是特别强. 4.支持

Nginx web服务优化 (一)

1.Nginx基本安全优化 a.更改配置文件参数隐藏版本 编辑nginx.conf配置文件增加参数,实现隐藏Nginx版本号的方式如下.在nginx配置文件nginx.conf中的http标签段内加入 "server_tokens off;"参数,如下: http{ -- server_tokens off; -- } 此参数放置在http标签内,作用是控制http response header内的web服务版本信息的显示,以及错误信息中web服务版本信息的显示. server_to

web网站集群之企业级Nginx Web服务优化详解

1. 隐藏nginx版本信息优化(安全优化) 官方参考链接:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens Syntax:  server_tokens on | off | build | string; Default: server_tokens on;(默认显示nginx服务版本) Context: http, server, location 实践配置: server { listen     

web网站集群之企业级Nginx Web服务优化详解(二)

12 配置Nginx gzip压缩实现性能优化 100k ---- 1s 90k 100k ---- 5s 10k gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 7; gzip_types text/css text/xml application/javascripts; gzip_vary on; Syntax: gzip_buffers number size;

Nginx Web 服务应用进阶(2)

1. Nginx 状态信息功能配置 1.1 Nginx status 介绍 Nginx 软件的功能模块中有一个 http_stub_status_module 模块,这个模块的主要功能是记录 Nginx 的基本访问状态信息,让使用者了解 Nginx 的工作状态,例如连接数等信息.要想使用状态模块,在编译 Nginx 时必须增加该模块,可通过如下方法检查编译安装 Nginx 时是否设定支持上述模块: [r[email protected] conf]# /application/nginx/sbi

Nginx Web服务优化

实验环境: 虚拟机 CentOS 6.8 Nginx基本安全优化 1.调整参数隐藏Nginx软件版本号信息 http { include  mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server_tokens off;   为关闭状态,不显示具体版本号 include extra/www.conf; include extra/bbs.conf; include ex

web网站集群之企业级Nginx Web服务优化详解(一)

1. 隐藏nginx版本信息优化(安全优化) 官方参考链接:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens Syntax:  server_tokens on | off | build | string; Default: server_tokens on;(默认显示nginx服务版本) Context: http, server, location 实践配置: server { listen     

Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务 1.1 web网站服务介绍: 1.1.1 提供静态服务的软件 Apache:这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高.在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网