资讯专栏INFORMATION COLUMN

Nginx入门到实战(1)基础篇

DevTTL / 338人阅读

摘要:老师比较精明,他告诉学生,谁完成了作业举手,有举手的同学他才去指导问题,他让学生主动发声,分开了并发。

一、环境

服务器版本:CentOS 7.2

为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择性无视)

确认系统网络

确认yum可用

确认关闭iptables

确认停用selinux

#查看iptables状态
systemctl status firewalld.service
#关闭防火墙(临时关闭)
systemctl stop firewalld.service
#查看SELinux状态 
getenforce
#临时关闭SELinux 
setenforce 0

安装一些系统基本工具,正常情况系统都会自带(没有在装哦)

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
二、Nginx是什么?

Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务
其他的HTTP服务:

HTTPD-Apache基金会

IIS-微软

GWS-Google(不对外开放)

近几年,Nginx的市场占有率越来越高,一度飙升,为什么呢?接下来我们就知道了!

三、我们为什么选择Nginx?

1. IO多路复用epoll(IO复用)

如何理解呢?举个例子吧!
有A、B、C三个老师,他们都遇到一个难题,要帮助一个班级的学生解决课堂作业。
老师A采用从第一排开始一个学生一个学生轮流解答的方式去回答问题,老师A浪费了很多时间,并且有的学生作业还没有完成呢,老师就来了,反反复复效率极慢。
老师B是一个忍者,他发现老师A的方法行不通,于是他使用了影分身术,分身出好几个自己同一时间去帮好几个同学回答问题,最后还没回答完,老师B消耗光了能量累倒了。
老师C比较精明,他告诉学生,谁完成了作业举手,有举手的同学他才去指导问题,他让学生主动发声,分开了“并发”。
这个老师C就是Nginx。

2. 轻量级

功能模块少 - Nginx仅保留了HTTP需要的模块,其他都用插件的方式,后天添加

代码模块化 - 更适合二次开发,如阿里巴巴Tengine

3. CPU亲和

把CPU核心和Nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss,从而提高性能。

三、安装与目录

本人使用了鸟哥的lnmp集成包 https://lnmp.org,简单方便-推荐!

#执行这句语句,根据指引,将安装 nginx php mysql 可进入lnmp官网查看更详细的过程
#默认安装目录/usr/local
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

#默认安装目录
/usr/local
四、基本配置
#打开主配置文件,若你是用lnmp环境安装
vim /usr/local/nginx/conf/nginx.conf

----------------------------------------

user                    #设置nginx服务的系统使用用户
worker_processes        #工作进程数 一般情况与CPU核数保持一致
error_log               #nginx的错误日志
pid                     #nginx启动时的pid

events {
    worker_connections    #每个进程允许最大连接数
    use                   #nginx使用的内核模型
}

我们使用 nginx 的 http 服务,在配置文件 nginx.conf 中的 http 区域,配置无数个 server ,每一个 server 对应这一个虚拟主机或者域名

http {
    ... ...        #后面再详细介绍 http 配置项目
    
    server {
        listen 80                          #监听端口;
        server_name localhost              #地址
        
        location / {                       #访问首页路径
            root /xxx/xxx/index.html       #默认目录
            index index.html index.htm     #默认文件 
        }        
        
        error_page  500 504   /50x.html    #当出现以上状态码时从新定义到50x.html        
        location = /50x.html {             #当访问50x.html时
            root /xxx/xxx/html             #50x.html 页面所在位置
        }        
    }
    
    server {
        ... ... 
    } 
}

一个 server 可以出现多个 location ,我们对不同的访问路径进行不同情况的配置
我们再来看看 http 的配置详情

http {
    sendfile  on                  #高效传输文件的模式 一定要开启
    keepalive_timeout   65        #客户端服务端请求超时时间
    log_format  main   XXX        #定义日志格式 代号为main
    access_log  /usr/local/access.log  main     #日志保存地址 格式代码 main
}
四、模块

查看 nginx 已开启和编联进去的模块,模块太多了,就不在这长篇大论,有需要自行百度吧~

#大写V查看所有模块,小写v查看版本
nginx -V
# 查看此配置文件 是否存在语法错误
nginx -tc /usr/local/nginx/conf/nginx.conf

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30790.html

相关文章

  • Nginx入门实战1基础

    摘要:老师比较精明,他告诉学生,谁完成了作业举手,有举手的同学他才去指导问题,他让学生主动发声,分开了并发。 一、环境 服务器版本:CentOS 7.2 为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择性无视) 确认系统网络 确认yum可用 确认关闭iptables 确认停用selinux #查看iptables状态 systemctl status firewalld.ser...

    focusj 评论0 收藏0
  • Nginx入门实战(2)场景实现

    摘要:上一章了解了的基础理论与配置,这一章将介绍在各种不同场景下的不同使用方法一静态资源服务静态资源类型非服务器动态运行生成的文件,换句话说,就是可以直接在服务器上找到对应文件的请求浏览器端渲染图片视频文件,任意下载文件静态资源服务场景什么是例 上一章了解了nginx的基础理论与配置,这一章将介绍nginx在各种不同场景下的不同使用方法 一、静态资源WEB服务 1.静态资源类型 非服务器动态...

    netmou 评论0 收藏0

发表评论

0条评论

DevTTL

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<