Nginx入门笔记

导读:本篇文章讲解 Nginx入门笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Nginx入门笔记

这是一篇两年前学习nginx的笔记,整理出来以防需要用到,或者以后再继续补充关于使用docker发布,nginx代理或转发的请求头限制内容大小等配置。

一,Nginx入门

​ Nginx是一款轻量级的web服务器/反向代理服务器即电子邮件(IMAP/POP3/SMTP)代理服务器。Nginx由内核和模块组成,其中内核的设计非常微小和简洁,仅仅通过配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。其特点是占有内存少,并发能力强。

相对于Apache优点:
(1)	高并发响应性能非常好
(2)	反向代理性能非常强
(3)	内存和CPU占用率低
(4)	对后端服务有健康检查功能
(5)	配置代码简洁且容易上手

Nginx模块:
从结构上分为:核心模块,基础模块,第三方模块
核心模块:HTTP模块,EVENT模块,MAIL模块
基础模块:HTTP Access模块,HTTP FastCGI模块,HTTP Proxy模块,HTTP Rewrite模块
第三方模块:HTTP Upstream Request Hash模块,Notice模块和HTTP Access Key模块

Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll模型异步非阻塞,而Apache采用的是select模型。
Select特点:
	Select选择语柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取哪些句柄有事件通知,因此效率是非常低。
Epoll特点:
	Epoll对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历这个句柄链表,因此效率非常高。

二,Nginx安装

2.1 Mac安裝

​ 下载nginx: http://nginx.org/en/download.html ,也要下载PCRE安装包(让nginx支持Rewrite功能):http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

安装PCRE
	解压进入目录依次输入
		./configure
		make && make install
	查看PCRE版本
		pcre-config —version
安装nginx
	解压进入目录后
		./configure
	安装
		install
		make install
	查看nginx版本
		/usr/local/nginx/sbin/nginx -v
启动nginx
	进入 /usr/local/nginx/sbin目录,输入命令
		sudo ./nginx

2.2 Windows安裝

下载nginx: http://nginx.org/en/download.html , 解壓到文件系統中.

命令行進入主目錄下, 運行以下命令 :

start nginx

然後進入瀏覽器, 訪問localhost

三,Nginx命令行

開啟Nginx服務

start nginx

​ -c 指定配置文件
​ -g 指定配置的指令
​ -p 指定运行目录
​ -s stop立刻停止服务,quit优雅停止服务,reload重载配置文件,reopen开始记录日志文件
​ -t 测试配置文件语法是否有错误
​ -v 版本信息

nginx -s stop	# 立刻停止服務
nginx -s reload	# 重新配置文件

四,Nginx反向代理

​ 在hosts配置文件配置IP域名
​ 127.0.0.1 eureka.com
​ 配置nginx.conf
​ 第一种:

server{
        		listen          80;
       		 	server_name     eureka.com;
       			location / {
                		proxy_pass      http://localhost:8761; 
                		index   index.html index.htm;
        		}
   		}

第二种:

upstream eureka-server{
	server  localhost:8761;
}
server{
    listen		80;
    server_name	eureka.com;
    location / {
        proxy_pass	http://eureka-server;
        index	index.html index.htm;
    }  
}
  • proxy_pass URL:此配置将当前请求反向代理到URL参数指定的服务器上,URL可以是主机名或IP地址加端口的形式
  • proxy_set_header Host $host:默认情况下反向代理是不会转发请求的Host头部的。如果需要转发,那么必须加上该配置;
  • proxy_method METHOD:此配置项表示转发时的协议方法名,例如设置为 proxy_method POST,那么客户端发来的GET请求在转发时方法也会改为POST。

五,Nginx负载均衡

​ Nginx负载均衡要在nginx.conf中写入相关配置,主要对proxy_pass,upstream的使用。
​ 几种负载均衡方式:

  1. 轮询(默认):每个请求按时间顺序逐一=分配到不同的后端服务器,如果后端服务器挂掉,能自动剔除。

  2. weight权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  3. ip_hash哈希算法:每个请求按访问IP的hash结果分配,这样每个访客固定访问一个后端服务器。

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

  5. down:表示当前的server暂时不参与负载均衡。
    实现配置:

    	upstream eureka-server{
    		server  localhost:8000  weight=3;
     		server  localhost:8001;
        }
        server{
            listen		80;
    		server_name	eureka.com;
    		location / {
    			proxy_pass	http://eureka-server;
    			index	index.html index.htm;
    		}  
       	}
    

​ 通过以上配置,在访问eureka.com时,由于配置了proxy_pass地址,所有请求都会通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为eureka-server的地址,读取分发策略,配置8761权重为3,所以nginx会将大部分请求发送给8761,较少交给8762。

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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/81590.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!