Nginx原理及配置

Nginx原理及配置,第1张

Nginx原理及配置

1.Nginx简介:       

        Nginx是开源的轻量级web服务器、反向代理服务器,以及负载均衡器和HTTP缓存器。特点是高并发、高性能和低内存。

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,最大能支持 50000 个并发连接数。 Nginx 还支持热部署,它的使用特别容易,几乎可以做到 7×24 小时不间断运行。 Nginx 的网站用户有:百度、淘宝、京东、腾讯、新浪、网易等。

 2.Nginx反向代理

        2.1正向代理        

        是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定一个目标,然后代理服务器想目标服务器转交请求病将获得的内容返回给客户端。(常用的正向代理就比如“翻墙”)

代理服务器隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

      

         2.2反向代理

                是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

“代理服务器”代理了“目标服务器”,去和“客户端”进行交互。

      

 2.3区别

  1. 正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器济源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
  2. 正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。反向代理一般是服务器架设。

     3.正向代理主要解决访问限制问题。反向代理则是提供负载均衡、安全防护等作用。

3.负载均衡

        将原来请求集中到单个服务器上的情况改为增加服务器的数量,然后经请求分发到各个服务器上,将负载分发到不同的服务器,即负载均衡。

         

 4.动静分离

        为了加快网站的解析速度,可以把静态页面和动态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

      

 5.高可用

        为了提高系统的可用性和容错能力,可以增加nginx服务器的数量,当主服务器发生故障或宕机,备份服务器可以立即充当主服务器进行不间断工作。

          

 6.Nginx安装

        6.1Nginx下载

        nginx: download 下载稳定版本。     

        以nginx/Windows-1.16.1为例,直接下载 nginx-1.16.1.zip。
        下载后解压,解压后如下:

      

         6.2启动Nginx           

                有很多种方法启动nginx

                (1)直接双击nginx.exe,双击后一个黑色的d窗一闪而过

                (2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

        6.3 检查Nginx是否启动成功

                直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

            

         6.4 配置监听

                nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。

          

                当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效

        6.5 关闭Nginx              

                如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx

                (1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

                (2)使用taskkill taskkill /f /t /im nginx.exe

                        taskkill是用来终止进程的

                        /f是强制终止  /t终止指定的进程和任何由此启动的子进程

                        /im 指定的进程名称

 7. Nginx配置

        7.1文件结构

                

                

  • 第一部分 全局块
      主要设置一些影响 nginx 服务器整体运行的配置指令。比如: worker_processes 1; , worker_processes 值越大,可以支持的并发处理量就越多。
  • 第二部分 events块
      events 块涉及的指令主要影响Nginx服务器与用户的网络连接。  比如: worker_connections 1024; ,支持的最大连接数。
  • 第三部分 http块
      http 块又包括 http 全局块和 server 块,是服务器配置中最频繁的部分,包括配置代理、缓存、日志定义等绝大多数功能。 server块:配置虚拟主机的相关参数。 location块:配置请求路由,以及各种页面的处理情况。

        7.2 配置文件

                

//配置文件
user  nginx;      # 运行用户,默认即是nginx,可以不进行设置
worker_processes  1;     # Nginx 进程数,一般设置为和 CPU 核数一样
error_log  /var/log/nginx/error.log warn;   # Nginx 的错误日志存放目录
pid   /var/run/nginx.pid;      # Nginx 服务启动时的 pid 存放位置
 
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on	
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
    use epoll;     # 事件驱动模型
    worker_connections 1024;   # 每个进程允许最大并发数
}
 
http {   # 配置使用最频繁的部分,代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置
    # 设置日志模式
    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  /var/log/nginx/access.log  main;   # Nginx访问日志存放位置
 
    sendfile  on;   # 开启高效传输模式
    tcp_nopush  on;   # 减少网络报文段的数量
    tcp_nodelay  on;
    keepalive_timeout  65;   # 保持连接的时间,也叫超时时间,单位秒
    types_hash_max_size 2048;
 
    include   /etc/nginx/mime.types;      # 文件扩展名与类型映射表
    default_type    application/octet-stream;   # 默认文件类型
 
    include /etc/nginx/conf.d/*.conf;   # 加载子配置项
    
    server {
    	listen  80;       # 配置监听的端口
    	server_name  localhost;    # 配置的域名
    	
    	location  /  {
    		root   /usr/share/nginx/html;  # 网站根目录
    		index  index.html index.htm;   # 默认首页文件
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
    		deny 172.168.22.11;   # 禁止访问的ip地址,可以为all
    		allow 172.168.33.44;# 允许访问的ip地址,可以为all
    	}
    	
    	error_page 500 502 503 504 /50x.html;  # 默认50x对应的访问页面
    	error_page 400 404 error.html;   # 同上
    }
}

反向代理配置:
server {
 listen 8080; #前端访问开的端口号
server_name 192.168.4.32; #监听地址
 location / { 
root html; #/html目录
 	proxy_pass http://127.0.0.1:8080; #请求转向 后台接口代理路径
 	index index.html index.htm; #设置默认页 
} 
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5563341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存