nginx的windos与linux使用

nginx
  1. Nginx (engine x) 是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

    其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

    Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

  2. 解决的问题
    1. 能够解决跨域的的问题
    2. 能够反向代理
    3. 能够处理并发问题,实现负载均恒
  3. nginx的整体结构

img

  1. 各个模块的作用
  • 全局块

该部分配置主要影响Nginx全局,通常包括下面几个部分:

配置运行Nginx服务器用户(组)
worker process数
Nginx进程PID存放路径
错误日志的存放路径
配置文件的引入

  • events块

该部分配置主要影响Nginx服务器与用户的网络连接,主要包括:

设置网络连接的序列化
是否允许同时接收多个网络连接
事件驱动模型的选择
最大连接数的配置

  • http块

定义MIMI-Type
自定义服务日志
允许sendfile方式传输文件
连接超时时间
单连接请求数上限

  • server块

配置网络监听
基于名称的虚拟主机配置
基于IP的虚拟主机配置

  • location块

location配置
请求根目录配置
更改location的URI
网站默认首页配置

  1. 基本操作步骤(windos)
    1. 下载nginx(选择.zip的)

    2. 解压然后进入nginx解压后的目录用cmd回车

      image-20201204102327129

    3. 配置nginx文件

      1. 进入conf目录有一个nginx.conf

      2. 修改配置文件

      3.    
        server{
        listen       ip:端口;      
        当listen出现了ip时,server_name就失去了意义。所以不配置也罢了。
        server_name  localhost;  
        
        location / {
                	proxy_pass http://127.0.0.1:8001;
        	}
        这个配置用于配置需要反向代理的服务地址http://127.0.0.1:8001(上面匹配成功就会反向代理这个地址)
        
        error_page   500 502 503 504  /50x.html;   //错误页面路径
                location = /50x.html {
                    root   html;
                }
                
        location ~\.(css|js|png)$ {            //静态资源路径(注意是/不是\)
                    root D:/real-name.management4/target/static;
            }
        }
        

        server_name是什么?去这个博客看吧nginx的server_name

        ​ 客户端通过域名访问服务器时会将域名与被解析的ip一同放在请求中。当请求到了nginx中时。nginx会先去匹配ip,如果listen中没有找到对应的ip,就会通过域名进行匹配,匹配成功以后,再匹配端口。当这三步完成,就会找到对应的server的location对应的资源。

      4. 启动nginx

        在之前说的cmd中写命令 start nginx 或则直接双击nginx.exe 闪一下就代表启动了

        nginx -s reload重启nginx

        nginx -s stop 关闭nginx

      5. 访问配置的nginx

        如:刚刚配置的ip:端口访问会出现nginx首页,当然你配置了proxy_pass就会反向代理,如果你配置错误或则启动代理服务错误就会显示错误页面。

      6. 配置多台服务实现负载均衡

        1. upstream iot1{    //在http块设置如下属性
          		server 127.0.0.1:8001 weight=3;
          		server 127.0.0.1:8002 weight=2;
          		server 101.200.36.24:8001  weight=1;
          		ip_hash   加这个就是第三种负载方式,可以实现session共享(IP不变就会同一台服务器服务)
          		}
          

          upstream是节点 ,然后自定义名字如iot1 格式如上,下面需要中间的地址和端口就是你要反向代理的服务地址,weight为权重,越大就是负载越高。默认为1

          这里有三种负载算法

          轮询: 每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询

          权重:通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况

          ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。

          在服务后可以加如下标识

          1)down

          表示单前的server暂时不参与负载

          2)Weight

          默认为1.weight越大,负载的权重就越大。

          3)max_fails

          允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

          4)fail_timeout

          max_fails 次失败后,暂停的时间。

          5)Backup

          其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

        2. location / {  
                      proxy_pass  http://iot1;
              }
          

          将之前写的地址换成upstream节点命名的就行,相当于将之前的几个服务地址通过这个节点映射。这里相当于配置了之前的一堆服务。

        3. 重启nginx (nginx -s reload)

        4. 注意

          1. 静态资源的路径和/
          2. 自定义upstream节点名字时注意下划线问题,如果不成功尝试去掉下划线
          3. weight设置时注意写成weight=1不要有空格。
      5. 基本操作(linux版)

      ​ 这里直接通过yum方式下载,如果不是centOS的可以自己百度找安装方式

      yum update
      yun list | grep nginx
      yum install nginx (按y继续)
      whereis nginx (查看安装位置)
      

      下面是获取nginx安装位置的主要目录

      路径作用
      /usr/sbin/nginxnginx启动路径
      /etc/nginx存放nginx的配置文件
      /usr/share/nginx默认的nginx资源库

      接下来我们vi进入 vi /etc/nginx/nginx.conf,这个就是我们的配置文件具体配置什么上面windos版都说了。

      在文件中最下面有一个路径 include 路径 这个是默认server的路径 ,如果出现

      Address family not supported by protocol
      

      就看看默认配置里配置的是不是正确

      如果不正确,配成这样就行了

      server {
          listen       80;
          server_name  localhost;
      
          #charset koi8-r;
          #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  /50x.html;
          location = /50x.html {
              root   /usr/share/nginx/html;
          }
      
      }
      

      启动nginx,敲入命令 :/usr/sbin/nginx,如果显示地址被绑定

      nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
      nginx: [emerg] still could not bind()
      

      通过查看进程,停掉nginx进程再使用命令

    ps -ef | grep nginx
    
    kill -9 pid    查出来的进程id
    

    最后,访问nginx页面,出现如下页面就是启动了,接下来就是配置文件实现反向代理了。配置完记得重启nginx。

    image-20201204140741163

具体配置如何配置可以自行百度都能找到对应答案 详细配置文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值