nginx-1

今日内容:

1.nginx的基本介绍

nginx 是一个web服务器。

2.nginx基本介绍

1.高性能,近w个连接请求时,他的响应要比其他的web要快。
2.高扩展性:nginx功能模块化。官方提供了很多的优秀模块。
3.高可靠性:9999  99999(9代表宕机时间) 
4.热部署:不停止服务的情况下进行升级。 
5.互联网公司都选择Nginx  代理、缓存、负载均衡、静态资源处理、动静分离、LNMP、LNMT、LNMG 架构。

3.nginx的应用场景

1 web服务
2 负载均衡
3 代理缓存
4 安全服务 Https Lua
5 动静分离 Nginx+Tomcat
6 静态资源服务

4.nginx的基本组件

1.使用yum安装
 首先安装nginx的依赖环境
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
yum install nginx -y
 执行nginx -v 即可看到安装的版本
2.使用源码安装
3.nginx的网址
http://nginx.org/en/linux_packages.html#RHEL-CentOS

5.nginx的目录结构

[root@web01 ~]# rpm -ql nginx      
/etc/logrotate.d/nginx        nginx日志轮转,用于logrotate服务的日
/etc/nginx
/etc/nginx/conf.d                nginx主配置文件
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf             编码转换映射转化文件(很少用到)
/etc/nginx/koi-win
/etc/nginx/mime.types           设置HTTP协议的Content-Type与拓展名对应关系
/etc/nginx/modules     Nginx目录模块
/etc/nginx/nginx.conf       #主配置文件 ( 驾驶员 )
/etc/nginx/scgi_params      cgi配置相关,fastcgi配置
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx          
/etc/sysconfig/nginx-debug   用于配置出系统守护进程管理器的管理方式      

/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules    
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx         #编译出来的二进制文件 ( 汽车 )
/usr/sbin/nginx-debug
/var/cache/nginx           Nginx的缓存目录
/var/log/nginx          #访问日志和错误日志

6.nginx的配置文件

[root@web01 conf.d]# cat /etc/nginx/nginx.conf 

user  nginx;                     # nginx进程是哪个用户来运行
worker_processes  1;    # 启动多少个worker进程

error_log  /var/log/nginx/error.log warn;# 错误日志存在哪里( 黑匣子 )
pid        /var/run/nginx.pid;# 每个进程运行起来都会存在一个pid文件,里面存放的是该进程的 ID  


events {
    worker_connections  1024;        #worker接收的连接数  1024 * worker_process
}                  


http {
    include       /etc/nginx/mime.types;#当nginx无法识别你这个文件时,则默认一访问就直接下载了。
    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;#长连接 ( 默认长连接保持 65s )

    #gzip  on;#压缩

    include /etc/nginx/conf.d/*.conf;#包含/etc/nginx/conf.d/目录下的所有以 .conf 结尾的文件。
}
################################################################
server {                    #server表示要配置网站,每个Server{} 代表一个网站,简称虚拟主机
    listen       80;                #这个网站监听80端口
    server_name  oldxu.com;         #这个网站的域名是什么

    location / {                #控制网站访问的路径
        root   /usr/share/nginx/html;       #定义网站源代码存放的路径
        index  index.html index.htm;        #默认返回哪个文件作为默认返回页
    }
}

7.nginx中的http、server、location之间的关系是?

http:主要用来解决用户的请求和响应。   比如www用户ttt用户
server:主要用来响应具体的某一个网站。
location:用于匹配网站的uri路径。 
http{} 下面可以有多个 Server{} 每个server{} 又可以有多个 location {} 

8.nginx运行一个游戏网站

1.准备一个游戏的源码   
2.准备一个目录,存放我们的游戏
[root@web01 ~]# mkdir /code
[root@web01 ~]# cd /code
[root@web01 ~]# rz  游戏
[root@web01 ~]#  unzip 游戏安装包
[root@web01 ~]# cd /code/
[root@web01 code]# ls
gedou  gedou.zip  images  index.html  js  README.md  sound
################################################################
[root@web01 xiaolai]# ls
ceshi  game  h5game.zip  img  index.html  readme.txt
3.配置Nginx
        #3.1 配置监听的端口
        #3.2 配置网站的域名
        #3.3 配置用户访问网站路径规则  location
        #3.4 配置默认返回的页面
[root@web01 ~]# cat /etc/nginx/conf.d/game.oldxu.com.conf 
server{
        listen 80;
        server_name game.oldxu.com;
        location / { 
                root /code;
                index index.html;
}

}
###############################################################
[root@web01 ~]# cat /etc/nginx/conf.d/h5xiaolai.com.conf 
server{
        listen 80;
        server_name h5xiaolai.com;
        location / {
        root /xiaolai;
        index index.html;
}


}

4.检查nginx的语法  {} 成对出现并且每一条指令的结尾都有;号
[root@web01 code]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5.重启服务,让配置生效
[root@web01 code]# systemctl restart nginx

9.nginx访问网站的原理(详细过程)

nginx.jpg
第一步:浏览器请求  game.oldxu.com 
第二步:浏览会将请求的 game.oldxu.com   -->  http://game.oldxu.com/
第三步:浏览器对 域名进行解析    DNS解析  ( 我们域名是假的,所以,我们配置 hosts 劫持 )
第四步:浏览器通过随机端口,像服务端 80 端口建立TCP连接
第五步:浏览器发起HTTP的请求
第六步:请求被80端口对应的Nginx应用所接受,会交给http层,发现请求的域名是  game.oldxu.com 
第七步:接下来检查所有配文件,看是否有配置文件 满足用户请求的域名。   server_name 
第八步:满足域名匹配之后,检查用户 请求的路径,   /    就会被location /   所匹配
第九步:返回结果,/code下面的index.html 给用户
第十步:nginx应用程序像内核发送请求,获取磁盘中的某个文件,磁盘将数据拷贝至内核的缓存区,然后在 拷贝到nginx应用进程的缓存区
第十一步:nginx应用进程封装数据报文,回传给客户端浏览器。

10.访问/code/gedou #出现403的错误如何解决

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

推荐阅读更多精彩内容

  • 企业中常见的网站服务 处理静态资源网站服务: httpd(apache): http://apache.org/ ...
    StandingBy_abc阅读 138评论 0 0
  • 1、 Nginx 介绍 I/O:网络IO:本质是socket读取磁盘IO:每次IO,都要经由两个阶段:第一步:将数...
    张大志的博客阅读 374评论 0 0
  • 1、 Nginx 介绍 I/O:网络IO:本质是socket读取磁盘IO:每次IO,都要经由两个阶段:第一步:将数...
    阿丧小威阅读 147评论 0 0
  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 7,572评论 0 12
  • 1. 配置文件 nginx运行时的配置是来自nginx.conf这个文件,默认是在这个路径下:/etc/nginx...
    keith666阅读 737评论 0 1