Nginx配置文件详解
Nginx学习
反向代理
- 正向代理:正向代理是客户端通过代理服务器去访问一些服务器资源的方式
- 反向代理:
- 客户端访问反向代理服务器,反向代理服务器去代理目标服务器或者服务资源,返回给客户端;
- 对于客户端来说,只访问了反向代理服务器,对代理是无感的
- 对于服务器或者服务资源来说,隐藏了服务器或者服务资源的IP和端口
负载均衡
- 客户端通过nginx去访问多个服务端服务器时,可以对每个服务器的请求分发进行加权,将性能好的服务端服务器多分发一下请求;将性能比较弱的服务器少分配一些请求;降低服务器的压力。
动静分离
- 客户端通过nginx去访问服务端资源时,将静态资源(例如图片、视频等)和动态资源进行分开部署;优点是静态资源服务器使用的服务器资源相对较少、将服务器性能较好的服务器给动态资源服务器进行部署
基础命令
/usr/local/nginx/sbin
nginx -v
nginx -s stop
./nginx
./nginx -s reload
配置文件详解
-
默认配置文件位置: /usr/local/nginx/conf/nginx.conf -
文件组成:
- **全局块:**配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
- events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
- http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。http块中可以包含自己的全局块;我们使用“http全局块”来表示http中自己的全局块,即http块中不包含在server块中的部分。
- server块:配置虚拟主机的相关参数,一个http中可以有多个server。
- location块:配置请求的路由,以及各种页面的处理情况。
events {
accept_mutex on;
multi_accept on;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
access_log log/access.log myFormat;
sendfile on;
sendfile_max_chunk 100k;
keepalive_timeout 65;
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup;
}
error_page 404 https://www.baidu.com;
server {
keepalive_requests 120;
listen 4545;
server_name 127.0.0.1;
location /qqq {
root D:\SoftWareData\TTT;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
location ~*^.+$ {
proxy_pass http://mysvr;
deny 127.0.0.1;
allow 172.18.5.54;
}
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file confpasswd;
}
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
}
}
|