linux篇之Nginx web服务器简单部署

linux篇之Nginx web服务器简单部署

目录

一、安装部署nginx

1. 部署前先对nginx介绍下别嫌BB:

2.这里采用源码编译安装的方式安装

2. 编写nginx配置文件

04. 创建站点目录下首页文件:

05. 测试访问

二. nginx日志信息

 1. 错误日志

2. 访问日志(重点关注)

3. 对日志我们要进行切割,防止一个日志文件过大


回到顶部

一、安装部署nginx

1. 部署前先对nginx介绍下别嫌BB:

如果你听说或使用过Apache软件,那么很快就会熟悉Nginx软件,与Apache软件类似,

Nginx(“engine x”)是一个开源的,支持高性能、高并发的WWW服务器和代理服务软件。

它是由俄罗斯人lgor Sysoev开发的,最初被应用在俄罗斯的大型网站www.rambler.ru上。

后来作者将源代码以类BSD许可证的形式开源出来供全球使用。

Nginx可以运行在UNIX、Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中

特征介绍:

· 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)

· 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB(WO CAO NB!!)

· 支持异步网络I/O事件模型epoll(Linux 2.6+) apache(select)

功能介绍:

1)作为Web服务软件(处理用户访问静态请求)

2)反向代理或负载均衡服务

3)前端业务数据缓存服务

nginx软件模型特点说明:

apache与nginx软件对比说明???

apache使用select模型

nginx使用epoll模型

  举例说明:宿舍管理员

select模型版管理员 会一个一个房间查询人员

epoll模型版管理员 会进行检索后,直接找到需要找的人

举例说明:幼儿园阿姨

select模型版阿姨 会一个一个小朋友进行询问,确认哪个小朋友需要上厕所

epoll模型版阿姨 会告知想上厕所小朋友自觉站到响应位置


2.这里采用源码编译安装的方式安装

一个最lowB版的shell安装脚本

#!/bin/bash

. /etc/init.d/functions


tool_path=/server/tools

download_address=http://nginx.org/download/nginx-1.16.0.tar.gz


[ ! -d ${tool_path} ] && mkdir -p $tool_path

useradd www -s /sbin/nologin/ -M

yum install -y pcre-devel openssl-devel

if [ $? -eq 0 ];

then

    action "yum install success" /bin/true

else

    action "yum install failure" /bin/false

    exit 1

fi


cd $tool_path

wget $download_address

if [ $? -eq 0 ];

then

    action "download success" /bin/true

else

    action "download failure" /bin/false

    exit 1

fi


tar -xf nginx-1.16.0.tar.gz

if [ $? -eq 0 ];

then

    action "tar success" /bin/true

else

    action "tar failure" /bin/false

    exit 1

fi


cd nginx-1.16.0

./configure --prefix=/application/nginx-1.16.0/ --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

if [ $? -eq 0 ];

then

    action "configure success" /bin/true

else

    action "configure failure" /bin/false

    exit 1

fi

make && make install

if [ $? -eq 0 ];

then

    action "makeinstall success" /bin/true

else

    action "makeinstall failure" /bin/false

    exit 1

fi

ls -s /application/nginx-1.16.0/ /application/nginx

ln -s /application/nginx-1.16.0/ /usr/bin/nginx


#启动Nginx服务

/usr/bin/nginx

ps -ef|grep nginx

2. 编写nginx配置文件


三个语法格式说明:

①. 大括号要成对出现

②. 每一行指令后面要用分号结尾

③. 每一个指令要放置在指定的区块中

01:简化配置文件(注释很多我们先简化下)



cd /application/nginx/conf/

grep -Ev"#|^$"nginx.conf.default >nginx.conf #简化nginx.conf




02. 实现编写一个网站页面(测试下)


vim /application/nginx/conf/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  www.etiantian.org;

            location / {

                root  html/www; #站点根目录

                index  index.html index.htm;

            }

        }

    }





03. 如果要实现多个页面编写==多个虚拟主机,可以编写多个server模块

  然后创建站点目录:

  例如:mkdir -p /application/nginx/html/{www,bbs,blog}


server {

    listen      80;

    server_name  www.etiantian.org;

    location / {

        root  html/www;

        index  index.html index.htm;

    }

    }

    server {

        listen      80;

        server_name  bbs.etiantian.org;

        location / {

            root  html/bbs;

            index  index.html index.htm;

        }

    }

    server {

        listen      80;

        server_name  blog.etiantian.org;

        location / {

            root  html/blog;

            index  index.html index.htm;

        }

    }

为了便于管理,每个站点的server模块可以分别编写在成子配置文件中,只需要在nginx.conf中 include进来就行了.................



04. 创建站点目录下首页文件:

 例如:

fornameinwww bbs blog;do echo"10.0.0.7 $name.etiantian.org">/application/nginx/html/$name/index.html;donefornameinwww bbs blog;do cat /application/nginx/html/$name/index.html;done10.0.0.7 www.etiantian.org10.0.0.7 bbs.etiantian.org10.0.0.7 blog.etiantian.org



05. 测试访问

浏览器访问测试:

注意:需要编写windows主机hosts文件,进行解析

命令行访问测试:

利用curl命令在linux系统中访问测试

注意:需要编写linux主机hosts文件,进行解析

这样就部署成功啦!!!


回到顶部

二. nginx日志信息

 1. 错误日志


  Syntax:    error_log file [level];

  Default:   

  error_log logs/error.log error;

  Context:    main, http, mail, stream, server, location

  #error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info; 

  vim nginx.conf

  error_log  /tmp/error.log error;


 例如:

补充说明:

===========================================================================================

错误日志的,默认情况下不指定也没有关系,因为nginx很少有错误日志记录的。

但有时出现问题时,是有必要记录一下错误日志的,方便我们排查问题。

error_log 级别分为 debug, info, notice, warn, error, crit 默认为crit

该级别在日志名后边定义格式如下:

error_log /your/path/error.log crit;

crit 记录的日志最少,而debug记录的日志最多。

如果nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,

那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富

===========================================================================================


2. 访问日志(重点关注)


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      10.0.0.1          --- 访问客户端的源地址信息

  $remote_user          -              --- 访问客户端认证用户信息  ???

  [$time_local]                        --- 显示访问时间

  $request        GET / HTTP/1.1        --- 请求行信息

  $status              304              --- 状态码信息(304状态码利用缓存显示页面信息)

  $body_bytes_sent                      --- 服务端响应客户端的数据大小信息

  $http_referer                        --- 记录链接到网站的域名信息  ???

  $http_user_agent                      --- 用户访问网站客户端软件标识信息

                                            用户利用客户端浏览器测试访问时,win10默认浏览器会有

  异常问

  $http_x_forwarded_for                --- ???  反向代理

  官方链接:http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log



3. 对日志我们要进行切割,防止一个日志文件过大

 我们利用shell脚本就可简单实现

[root@web01 scripts]# vim cut_log.sh#!/bin/bash     

data_info=$(date +%F-%H:%M)

mv /application/nginx/logs/www_access.log /application/nginx/logs/access.log.$data_info/application/nginx/sbin/nginx -s reload# cut nginx log cron* */6 * * * /bin/sh /server/scripts/cut_log.sh &>/dev/null#自定义定时触发

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343