Nginx日常使用
2020-09-01 本文已影响0人
暖小忧
Nginx简单实用
相关代理详解
- 正向代理
- 介绍
- 用户A(想访问ServerB,但是不能直接访问,ServerA可以访问ServerB) --> ServerA --> ServerB ,对于这个访问链路来说,ServerA就是一个正向代理。
- 优缺点:
- 屏蔽或者隐藏了真实的客户端信息(ServerB只知道ServerA访问,并不知道用户A的相关信息);
- 应用
- cache作用;
- 客户端访问授权;
- 介绍
- 反向代理
- 介绍
- 用户A(获取ServerB的服务,但是对于用户A来说,访问ServerA就能获得ServerB的服务,但是ServerA是一个代理服务器。) --> ServerA --> ServerB
- 优缺点
- 隐藏了对外部的实际服务器的地址(比如实际提供服务的是ServerB,但是外部只知道ServerA,并不知道ServerB的存在);
- 应用
- 负载均衡;
- 介绍
- 透明代理
- 客户端不知道代理服务器的存在,它会修改请求的报文,并传送真实的ip,多用于路由器的NAT转发中。
Windows下的nginx配置
- 安装
- 下载windows安装包: http://nginx.org/en/download.html,nginx/windos-version;
- 双击安装即可;
- 配置
- 常用命令(在nginx安装目录下,cmd进入windows命令行)
- nginx -s stop (强制停止nginx,如果存在未处理的数据,丢弃)
- nginx -s quit (如果存在未处理数据,等待数据处理完成后,停止)
- nginx -s reload (配置文件修改后,重新启动nginx)
- nginx -s reopen (打开一个新的日志文件,防止原日志文件过大。)
Linux下的nginx配置
- 安装
Linux的安装与windows有一些区别,需要经历./configure(链接)、make(编译)、make install(安装) 等步骤,并且特别注意一下其中的参数,会影响到最后安装的结果。- 下载tar包: http://nginx.org/en/download.html,nginx-version.tar.gz;
- ./configure 命令,部分参数说明:
- -prefix=path 指定安装路径,不指定的话默认/usr/local/nginx;
- -sbin-path=path nginx可执行文件安装路径,只能安装时指定,如不指定,默认<prefix>/sbin/nginx
- -conf-path=path 在不指定-c参数时的配置文件路径,如不指定,默认为<prefix>/conf/nginx.conf
- 常用命令
- nginx -c /path/to/nginx.conf 指定nginx启动时的配置文件;
- nginx -s reload 修改配置后,重新加载配置文件;
- nginx -s stop 强制关闭nginx;
- nginx -s quit 关闭nginx,如有使用,使用完毕后关闭;
- nginx -t 测试配置文件是否有效(修改配置文件后,可以测试修改后的配置文件是否可行);
Nginx配置文件简单使用说明
nginx在项目使用中,核心的几个功能分别是反向代理、负载均衡和静态服务器;
nginx的配置文件,主要分为以下几个模块:
-
全局配置;
全局配置.png
- user 指定nginx-worker 进程运行用户及用户组(主要在linux服务器上使用,指定运行nginx的linux用户即可,如果是静态资源,注意一下访问的静态资源权限问题);
- worker_processes 指定nginx开启的子进程数量,一般是cpu内核数量的整数倍;
- worker_rlimit_nofile 指定一个进程可以打开最多文件数量的描述;
-
event 模块配置;
event模块.png
- worker_connections 指每个worker_processes最大可以同时接收的连接数量;
- use epoll 选择事件驱动模块。调优使用。支持类型有select、poll、kqueue、epoll、rtsing等;
-
http 模块配置;
-
server 模块;
http-server.png
- server模块,一个http模块可以有多个server;
- server_name,指定ip地址或者域名,多个配置之间使用空格;
- listen,监听的端口地址;
- location 模块; location模块.png
- proxy_pass 指定代理的地址信息;
- alias 指定的目录是准确的,即访问的location是直接在alias指定的目录下寻找的;
- root 指定的目录是,访问location页面的上一级目录。需要保证path目录一定要在root目录下,具体可参考(https://www.cnblogs.com/moon3/p/11095645.html);
-
server 模块;
http-server.png
-
upstream (负载均衡)模块;
负载均衡.png
- server 即为轮询的服务列表,访问的时候,可以在location模块中使用upstream模块指定的name;
- ip_hash不指定时,默认使用的是轮询,比较适合静态页面和图片服务集群;
- ip_hash指定时,按访问的ip的hash分配,可以解决session问题;
- max_fail 最大失败次数,超过失败次数暂停服务;
- fail_timeout 如果请求受理失败,暂停指定的时间之后重新发起请求;
- server ip:port weight=5 也可以使用权重设置,用于后端服务器性能不均衡的情况;