微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux之nginx

1,Nginx入门

想必我们大多数人都是通过访问网站而开始接触互联网的吧。我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。

Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的 请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户

目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。其中,IIS(Internet @R_323_4045@ion Services,互联网信息服务)是 Windows 系统中认的 Web 服务程序

2004 年 10 月 4 日,为俄罗斯知名门户站点而开发的 Web 服务程序 Nginx 横空出世。 Nginx 程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能快速占领服务器市 场,但 Nginx 最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、 网易、腾讯等门户站的青睐。

2,web服务器和web框架的关系

  • web服务器(Nginx):接收HTTP请求(列如www.pythonav.cn/xiaocang.jpg)并返回数据
  • web框架(django,flask):开发web应用程序,处理接收到的数据

3,Nginx是什么?

Nginx一个开源的,支持性能的,高并发的www服务和代理服务软件,它是一个俄罗斯人lgor sysoev开发的,
作者将源代码开源出来供全球使用, Nginx比大哥apache性能先进的多,Nginx占用的系统资源更少,支持更高的并发连接,有更高的访问频率,
Nginx不但是一个优秀的web服务软件,还可以作为反向代理,
负载均衡,以及缓存服务使用 安装更为简单, 方便, 灵活 Nginx可以说是非常强大了

4,安装

  • 解决依赖关系编译依赖gcc环境,所以先要安装gcc环境
    • yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
  • 下载源码包
    • wget -c https://Nginx.org/download/Nginx-1.12.0.tar.gz
  • 解压缩源码包
  • 在当前路径下通过configure这个脚本文件执行,释放makefile, 然后指定安装Nginx的路径
    • ./configure --prefix=/opt/Nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
  • 编译且编译安装
    • make && make install
  • 在/opt/NginxNginx1-12/安装好Nginx的目录,找到一个sbin的文件夹,找到启动命令,然后启动Nginx服务
    • 检查安装后目录, ll/opt/Nginx1-12
  • 启动Nginx的服务
  • 停止Nginx服务
  • 平滑重启(修改Nginx配置文件, 不重启服务就加载配置且生效)
    • sbin/ndinx -s reload
  • 检测ngnix.conf配置文件的语法正确性
  • 检查端口,进程,然后通过修改浏览器Nginx页面, ip地址
  • 虚拟主机:
  • server{
      listen     80;
    
      server_name     www.xuexue.com;  # 这里是Nginx通过这个参数,来定位不同的虚拟机代表访问Nginx的匹配路径  
    
       location / {
           # 指明网页根目录在/data/xuexue/文件夹下
           root  /data/xuexue/;
           index  index.html index.html
    }
    }
    server{
          listen     80;
          server_name    www.xiaoxue.com;
          location / {
                     # 指明网页根目录在/opt/html/文件夹下
                     root /data/xiaoxue;
                     index index.html index.html;
    }
    }
  • 重新加载Nginx配置文件
    • sbin/Nginx -t   # 检查语法
    • sbin/Nginx -s reload   # 平滑重启
  • 去data里边创建xuexue和xiaoxue2个文件夹放入不同的资料
  • 写入本地dns解析文件,由于是在windows中的hosts中添加记录,hosts文件就是一个本地dns(就是域名转化成ip地址)强制解析的文件

  • windows的hosts文件在:C/Windows/System32/driver/etc/hosts,写入如下信息
  • 192.168.12.49      www.xuexue.com
  • 192.168.12.49      www.xiaoxue.com

5,Nginx状态模块功能

  • 配置文件中,添加一个参数即可
    • location/status{
    •     stub_status on;
    • }
  • Nginx访问日志功能
  • 在配置中,打开注释, Nginx.conf
    • 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 记录客户端ip
    • $remote_user  远程用户, 没有就是"-"
    • $time_local      对应[14/Aug/2018:18:46:52 +0800]
    • $request           对应请求信息"GET/favicon.ico HTTP/1.1"
    • $status              状态码
    • $body_bytes_sent     571字节 请求体的大小
    • $http_referer       对应"-"     由于是直接输入浏览器就是-
    • $http_user_agent      客户端身份信息
    • $http_x_forword_for     记录客户端的来源真实ip
  • 1.在配置文件添加  Nginx.conf 
        server {
                listen       80;
                server_name  www.s14huoying.com;
                location / {
                    #指明网页根目录在/opt/html/文件夹下
                    root   /data/huoying;
                    index  index.html index.htm;
                    deny 192.168.12.120;
                }
                error_page  400 401 402 404   /40x.html;
                #当请求来自于wwww.s14huoying.com/status/
        }

     

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐