• nginx专题-nginx入门


    什么是nginx?

    nginx是一个高性能的Http和反向代理web服务器。其它常见的web服务器有apache,tomcat,iis等。

    nginx的特点

    nginx具有非常多的优点,博主暂时列举了一下几个优点,并且由于时间的限制,并没有深入研究,得到一些确切的数据。等有时间了,会回过头来试验。

    支持高并发连接

    nginx可以轻松支持几万的高并发。

    内存消耗小

    内存消耗

    成本低廉

    首先nginx是免费开源的web服务器,并且它的性能比较优越,也就相当于节省了服务器资源。

    负载均衡

    nginx可以实现负载均衡,就是通过一定的路由算法,将请求均衡的分配到多个服务器应用上。

    反向代理

    nginx可以实现反向代理的功能。举个例子,比如说一台服务器上部署了多个应用程序(这个应用程序的端口并不一致),我们可以借助于nginx的转发功能,将不同的url规则路由到不同的应用程序上。常见于前后端分离的应用。

    支持热部署

    nginx可以支持配置文件的热加载,可以支持nginx版本的热升级

    nginx文件目录

    nginx文件目录

    目录介绍

    • conf,配置文件
    • docs,文档
    • logs,日志文件
    • nginx.exe nginx

    nginx常用命令

    这里介绍一下windows环境下nginx的常用命令,并且命令需要在nginx.exe所在目录下执行。

    启动

    #也可以直接运行nginx.exe文件
    start nginx 
    

    正常停止

    nginx.exe -s quit
    

    快速停止

    nginx.exe -s stop
    

    重新加载

    nginx -s reload
    

    常见错误

    windows下nginx启动报错

    在windows上安装nginx的时候,nginx会启动错误。错误信息如下:

     bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
    

    这是因为windows系统自带了iis web服务器,iis已经占用了80端口,小伙伴们可以自行百度一下解除占用教程。

    windows下nginx进程无法彻底杀死

    在使用nginx停止命令时,nginx不会出现无法彻底杀死的情况。图中的nginx.pid记录了nginx的进程pid。

    pid配置

    此时如果使用程序管理器 或者 taskkill /pid /F 端口号杀死nginx,无法正常停止。

    解决方法

    taskkill /f /t /im nginx.exe
    

    nginx的基本配置介绍

    #使用的用户
    #user  nobody;
    
    #指定的工作进程树
    worker_processes  1;
    
    #指定错误日志存放的路径
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #指定pid的存放路径
    #pid        logs/nginx.pid;
    
    events {
    	#允许的连接数
        worker_connections  1024;
    }
    
    #http服务器配置
    http {
    
    	#导入支持的mime文件类型
        include       mime.types;
    	
    	#默认mime类型 二进制流
        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  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
    	#一个连接请求完之后还需要保持多长时间
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
    	#是否开启gzip压缩,需要服务器和浏览器同时支持
        #gzip  on;
    
    	#虚拟主机配置
        server {
    		
    		#监听端口
            listen       80;
    		
    		#监听域名
            server_name  www.test.com;
    
    		#字符集
            #charset koi8-r;
    
    		#日志存放路径
            #access_log  logs/host.access.log  main;
    
    		#路径定位
            location / {
    			
    			#转发配置
                 proxy_pass http://localhost:8080/;    
            }
    
    		#错误状态码 页面配置
            #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   html;
            }
        }
    }
    
    

    推荐书籍

    <<实战Nginx.取代Apache的高性能Web服务器.2010.pdf>>

    博主微信公众号

  • 相关阅读:
    GridView只显示日期问题
    自定义一个选择日期的用户控件
    母版页所带来的路径问题
    C#之旅(一): 泛型 和IComparable、IComparer
    使用HttpWebRequest来秒杀
    NameValueCollection Dictionary区别
    在C#中使用代理的方式触发事件 (委托和事件 )(二)(转)
    SQL2005语句实现行转列,列转行
    值类型和引用类型的区别?(转)
    2010年年终总结
  • 原文地址:https://www.cnblogs.com/chenhaoblog/p/13429853.html
Copyright © 2020-2023  润新知