Nginx使用—基础知识

Nginx简介

Nginx优点

高性能、高并发
支持很高的并发,在处理大量并发的情况下,比其他web服务器要高效

轻量且高扩展
功能模块少(源代码仅保留http与核心模块代码,其余不够核心代码会作为插件来安装)
代码模块化(易读,便于二次开发,支持第三方模块,对于开发人员非常友好)

高可靠性
只要不过分不会出现问题
宕机时间,99.999%
大部分web服务需要定期重启维护,nginx不需要

支持热部署
运行期间,更新迭代、代码部署

互联网公司都选择 Nginx
Nginx技术成熟, 国内公司基本大规模使用
适合当前主流架构趋势, 微服务、云架构、中间层
统一技术栈, 降低维护成本, 降低技术更新成本。

事件模型:Nginx 采用 Epoll 网络模型, Apache 采用 Select 模型
Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epoll: 当用户发起请求,epoll模型会直接进行处理,效率高效,并无连接限制。

Nginx应用场景

Nginx架构原理

1.主管进程负责工作进程的配置加载、启停等操作;
2.工作进程负责处理具体请求;
3.工作进程之间都是独立的,每个工作进程处理多个连接;
4.每个连接由一个工作进程全权处理,不需要进行进程切换,不会产生进程切换引起的资源消耗问题;
5.共享内存允许多个进程访问同一个内存地址,一个进程改变了内存中的内容后,其他进程都可以使用变更后的内容。

Nginx安装

1.Yum安装

1)配置nginx.repo软件源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

2)安装
yum install -y nginx

3)启动nginx服务
systemctl start nginx 
systemctl enable nginx 

2.源码包安装

1)基础环境与配置准备
1—1.安装编译需要的插件或依赖包
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
1-2.创建用户和组,且不创建用户的家目录
groupadd nginx -g 888
useradd -u 888 -g 888 -s /sbin/nologin -M nginx

2)下载nginx源码包
wget  http://nginx.org/download/nginx-1.24.0.tar.gz

3)解压
mkdir -p /app
tar xf nginx-1.24.0.tar.gz -C /app/
cd /app/nginx-1.24.0

4)配置
 ./configure --prefix=/app/nginx-1.24  --user=nginx --group=nginx

5)编译编译安装
make && make install

6)做软链接,方便后期维护
ln -s /app/nginx-1.24 /app/nginx

7)配置环境变量
echo "export PATH=$PATH:/app/nginx/sbin" >> /etc/profile
source /etc/profile

8)启动nginx
nginx

验证nginx是否启动
查看进程
ps aux | grep [n]ginx

监听端口号
ss -lntp | grep :80

Nginx配置文件

Nginx的相关命令

nginx #启动nginx。 等价于systemctl start nginx
 -s reopen #重启Nginx。 等价于systemctl restart nginx
 -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx。 等价于systemctl reload 
nginx
 -s stop #强制停止Nginx服务。 等价于systemctl stop nginx
 -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
 -?,-h #打开帮助信息
 -v #显示版本信息并退出
 -V #显示版本和配置选项信息,然后退出
 -T #检测配置文件是否有语法错误,转储并退出
 -q #在检测配置文件期间屏蔽非错误信息
 -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
 -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
 -g directives #设置配置文件外的全局指令

Nginx配置文件介绍

/etc/nginx/nginx.conf 主配置文件 
[root@web02 ~]# cat /etc/nginx/nginx.conf 
#全局配置模块
user  nginx;    # nginx 程序用户  
worker_processes  auto;  #工作进程的数量  根据cpu内核数量去进行生成工作进程数

error_log  /var/log/nginx/error.log notice;  #错误日志存放的位置 notice 错误日志的一种格式
pid        /var/run/nginx.pid;   #进程ID的文件
#事件处理模块
events {
    worker_connections  1024;
}
#http的核心模块
http {
    include       /etc/nginx/mime.types;  #include引入配置文件  mime.type传输文件的文件类型
    default_type  application/octet-stream; #指定默认的文件的类型

    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  /var/log/nginx/access.log  main; #运行日志
    sendfile        on;   #程序不需要通过内存 而直接给到用户
    #tcp_nopush     on;

    keepalive_timeout  65;  #长连接超时时间

    #gzip  on;   #对传输的http的超文本文件进行压缩
	
	#引入虚拟主机配置文件
    include /etc/nginx/conf.d/*.conf;	
}

虚拟主机的配置文件
/etc/nginx/conf.d/default.conf
虚拟主机 
server {
    listen       80;
    server_name  localhost;   #主机名称 localhost本地 -> 10.0.0.8
    						  #域名nierenjun.com

    #access_log  /var/log/nginx/host.access.log  main;  #运行日志

    location / {
        root   /usr/share/nginx/html;  #页面代码文件的主要目录
        index  index.html index.htm;   #默认索引页
    }

    #error_page  404              /404.html;  #错误页面

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504 404 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Nginx案例

需求:
输入zjh.game.com/maliao打开马里奥游戏
输入zjh.game.com/h5game打开h5小游戏

1.将两个小游戏的压缩包传到主机上
[root@web03 ~]# ls
anaconda-ks.cfg  h5game.zip  html5-mario.zip

2.创建/web目录存放解压后的两个小游戏
mkdir -p /web
unzip h5game.zip 
mv h5game /web/
unzip html5-mario.zip 
mv html5-mario /web/maliao

3.让/etc/nginx/conf.d目录下的default.conf
cd /etc/nginx/conf.d
rename .conf .conf.bak *.conf

4.编写新的虚拟主机配置文件
vim /etc/nginx/conf.d/game.conf
server {
        listen 80;
        server_name zjh.game.com; 
        root /web;
        location /maliao {
         index index.html;
        }
        location /h5game {
         index index.html;
        }
}

5.检查配置文件是否有错误
nginx -t

6.重启nginx服务
systemctl restart nginx

7.修改本地dns的地址
7-1.win+R 输入C:\Windows\System32\drivers\etc
7-2.将本地dns的所有权限放开
7-3.在hosts文件里面添加10.0.0.9 zjh.game.com并保存

8.验证
浏览器输入zjh.game.com/maliao
浏览器输入zjh.game.com/h5game

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值