zoukankan      html  css  js  c++  java
  • Linux之nginx

    1,nginx入门

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

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

    目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。其中,IIS(Internet Information 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
    • 解压缩源码包
      • tar -zxvf nginx-1.12.0
    • 在当前路径下通过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的服务
      • sbin/nginx
    • 停止nginx服务
      • sbin/nginx -s stop
    • 平滑重启(修改nginx配置文件, 不重启服务就加载配置且生效)
      • sbin/ndinx -s reload
    • 检测ngnix.conf配置文件的语法正确性
      • sbin/nginx -t
    • 检查端口,进程,然后通过修改浏览器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/
          }
  • 相关阅读:
    [Windows]Windows的访问控制模型
    [C/C++]宽字符与控制台程序
    [SQL Server]自动化附加和分离数据库
    [ASP.NET]自动发送邮件功能的实现
    [Windows]Windows路径探究
    asp.net中怎么样获取前一页地址
    CheckBox全选CheckBoxList
    远程SQL插入数据
    SQL存储过程调用作业的方法
    [转]javascript 调用后台函数
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/10265321.html
Copyright © 2011-2022 走看看