加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 创业 > 经验 > 正文

优秀的 Nginx 极简教程,覆盖了常用场景

发布时间:2021-05-26 23:21:53 所属栏目:经验 来源:互联网
导读:nginx-sreopen重新打开日志文件。 nginx-cfilename为Nginx指定一个配置文件,来代替缺省的。 nginx-t不运行,而仅仅测试配置文件。nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。 nginx-v显示nginx的版本。 nginx-V显示nginx的

nginx -s reopen     重新打开日志文件。 

nginx -c filename   为 Nginx 指定一个配置文件,来代替缺省的。 

nginx -t            不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。 

nginx -v            显示 nginx 的版本。 

nginx -V            显示 nginx 的版本,编译器版本和配置参数。 

如果不想每次都敲命令,可以在 nginx 安装目录下新添一个启动批处理文件startup.bat,双击即可运行。内容如下:

@echo off 

rem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程 

nginx.exe -s stop 

 

rem 测试配置文件语法正确性 

nginx.exe -t -c conf/nginx.conf 

 

rem 显示版本信息 

nginx.exe -v 

 

rem 按照指定配置去启动nginx 

nginx.exe -c conf/nginx.conf 

如果是运行在 Linux 下,写一个 shell 脚本,大同小异。

nginx 配置实战

我始终认为,各种开发工具的配置还是结合实战来讲述,会让人更易理解。

我们先实现一个小目标:不考虑复杂的配置,仅仅是完成一个 http 反向代理。

nginx.conf 配置文件如下:

注:conf / nginx.conf 是 nginx 的默认配置文件。你也可以使用 nginx -c 指定你的配置文件

#运行用户 

 

#user somebody; 

 

#启动进程,通常设置成和cpu的数量相等 

 

worker_processes 1; 

 

#全局错误日志 

 

error_log D:/Tools/nginx-1.10.1/logs/error.log; 

 

error_log D:/Tools/nginx-1.10.1/logs/notice.log notice; 

 

error_log D:/Tools/nginx-1.10.1/logs/info.log info; 

 

#PID文件,记录当前启动的nginx的进程ID 

 

pid D:/Tools/nginx-1.10.1/logs/nginx.pid; 

 

#工作模式及连接数上限 

 

events { 

 

worker_connections 1024; #单个后台worker process进程的最大并发链接数 

 

 

#设定http服务器,利用它的反向代理功能提供负载均衡支持 

 

http { 

 

#设定mime类型(邮件支持类型),类型由mime.types文件定义 

 

include D:/Tools/nginx-1.10.1/conf/mime.types; 

 

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 D:/Tools/nginx-1.10.1/logs/access.log main; 

 

rewrite_log on; 

 

#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用, 

 

#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime. 

 

sendfile on; 

 

#tcp_nopush on; 

 

#连接超时时间 

 

keepalive_timeout 120; 

 

tcp_nodelay on; 

 

#gzip压缩开关 

 

#gzip on; 

 

#设定实际的服务器列表 

 

upstream zp_server1{ 

 

server 127.0.0.1:8089; 

 

 

#HTTP服务器 

 

server { 

 

#监听80端口,80端口是知名端口号,用于HTTP协议 

 

listen 80; 

 

#定义使用访问 

 

server_name ; 

 

#首页 

 

index index.html 

 

#指向webapp的目录 

 

root D:1_WorkspaceProjectgithubzpSpringNotesspring-securityspring-shirosrcmainwebapp; 

 

#编码格式 

 

charset utf-8; 

 

#代理配置参数 

 

proxy_connect_timeout 180; 

 

proxy_send_timeout 180; 

 

proxy_read_timeout 180; 

 

proxy_set_header Host $host; 

 

proxy_set_header X-Forwarder-For $remote_addr; 

 

#反向代理的路径(和upstream绑定),location 后面设置映射的路径 

 

location / { 

 

proxy_pass http://zp_server1; 

 

 

#静态文件,nginx自己处理 

 

location ~ ^/(images|javascript|js|css|flash|media|static)/ { 

 

root D:1_WorkspaceProjectgithubzpSpringNotesspring-securityspring-shirosrcmainwebappviews; 

 

#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。 

 

expires 30d; 

 

 

#设定查看Nginx状态的地址 

 

location /NginxStatus { 

 

stub_status on; 

 

access_log on; 

 

auth_basic "NginxStatus"; 

 

auth_basic_user_file conf/htpasswd; 

 

 

#禁止访问 .htxxx 文件 

 

location ~ /.ht { 

 

deny all; 

 

 

#错误处理页面(可选择性配置) 

 

#error_page 404 /404.html; 

 

#error_page 500 502 503 504 /50x.html; 

 

#location = /50x.html { 

 

# root html; 

 

#} 

 

 

 

好了,让我们来试试吧: 

 

启动 webapp,注意启动绑定的端 

好了,让我们来试试吧:

启动 webapp,注意启动绑定的端口要和 nginx 中的 upstream 设置的端口保持一致。

更改 host:在 C:WindowsSystem32driversetc 目录下的 host 文件中添加一条 DNS 记录

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读