nginx服务的配置文件一般为nginx.conf,接下来针对nginx.conf文件中的各项配置做一个说明:


#user  nobody;#开启进程数 <=CPU数
worker_processes  1;#错误日志保存位置
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#进程号保存文件
#pid        logs/nginx.pid;#每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024
events {worker_connections  1024;
}http {#文件扩展名与文件类型映射表include       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  logs/access.log  main;#打开发送文件#在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或Linux系统上的TCP_CORK功 能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;#连接超时时间keepalive_timeout  65;#打开gzip压缩#gzip  on;#设定请求缓冲#client_header_buffer_size 1k;#large_client_header_buffers 4 4k;#设定负载均衡的服务器列表#upstream myproject {#weigth参数表示权值,权值越高被分配到的几率越大#max_fails 当有#max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查#fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器#}#webapp#upstream myapp {   # server 192.168.1.171:8080 weight=1 max_fails=2 fail_timeout=30s;   # server 192.168.1.172:8080 weight=1 max_fails=2 fail_timeout=30s;   #} #配置虚拟主机,基于域名、ip和端口server {#监听端口listen       80;#监听域名server_name  localhost;#charset koi8-r;#nginx访问日志放在logs/host.access.log下,并且使用main格式(还可以自定义格式)#access_log  logs/host.access.log  main;#返回的相应文件地址location / {#设置客户端真实ip地址#proxy_set_header X-real-ip $remote_addr;      #负载均衡反向代理#proxy_pass http://myapp;#返回根路径地址(相对路径:相对于/usr/local/nginx/)root   html;#默认访问文件index  index.html index.htm;}#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat#location ~ \.jsp$ {#    proxy_pass http://192.168.1.171:8080;#}     #error_page  404              /404.html;# redirect server error pages to the static page /50x.html##错误页面及其返回地址error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}#虚拟主机配置:server {listen 1234;server_name bhz.com;location / {#正则表达式匹配uri方式:在/usr/local/nginx/bhz.com下 建立一个test123.html 然后使用正则匹配#location ~ test {## 重写语法:if return (条件 = ~ ~*)#if ($remote_addr = 192.168.1.200) {#       return 401;#}       #if ($http_user_agent ~* firefox) {#       rewrite ^.*$ /firefox.html;#    break;#}         root bhz.com;index index.html;}#location /goods {#      rewrite "goods-(\d{1,5})\.html" /goods-ctrl.html;#        root bhz.com;#      index index.html;#}#配置访问日志access_log logs/bhz.com.access.log main;}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

说明直接注解在配置文件中,另外针对location后边的符号的含义做一个说明

location语法

location[=|~|~*|^~|@]/uri/{...}

location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择location{}块中的配置来处理用户请求。当然,匹配方式是多样的,下面介绍location的匹配规则:

1)=表示把URI作为字符串,以便与参数中的uri做完全匹配。例如:
location = / {
#只有当用户请求是/时,才会使用该location下的配置

}
2)~表示匹配URI时是字母大小写敏感的。
3)~*表示匹配URI时忽略字母大小写问题。
4)^~表示匹配URI时只需要其前半部分与uri参数匹配即可。例如:
location ^~ images {
# 以images开始的请求都会匹配上

}
5)@表示仅用于Nginx服务内部请求之间的重定向,带有@的location不直接处理用户请
求。
当然,在uri参数里是可以用正则表达式的,例如:
location ~* \.(gif|jpg|jpeg)$ {
# 匹配以.gif、.jpg、.jpeg结尾的请求

}
注意,location是有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。

在以上各种匹配方式中,都只能表达为“如果匹配...则...”。如果需要表达“如果不匹配...则...”,就很难直接做到。有一种解决方法是在最后一个location中使用/作为参数,它会匹配所有的HTTP请求,这样就可以表示如果不能匹配前面的所有location,则由“/”这个location处理。例如:
location / {
# /可以匹配所有请求

}

希望会有一些帮助。

Nginx配置文件的配置说明相关推荐

  1. Nginx 代理服务的配置说明

    Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx 代 ...

  2. 创建NGINX Plus和NGINX配置文件

    创建NGINX Plus和NGINX配置文件 NGINX和NGINX Plus与其他服务类似,因为它们使用以特定格式编写的基于文本的配置文件.默认情况下,该文件名为nginx.conf,对于NGINX ...

  3. nginx配置文件祥解

    nginx配置文件祥解 nginx配置说明---------------------------- #运行用户 user  www www; #启动进程 worker_processes  2; #一 ...

  4. Nginx配置详情-配置说明-参数优化(一)

    前言:Nginx?为什么选择Nginx?还不用Nginx你就out了.Nginx相比Apache拥有更块.高扩展性.高可用性.低内存消耗.单机支持10万以上并发等等.后面将分为几篇文章来简单介绍Ngi ...

  5. Nginx配置文件nginx.conf中文详解(转)

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  6. [Nginx优化]分享nginx配置文件及优化说明

    1.系统及内核方面     根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译:在内核参数的一些优化,如下: # Add net.ipv4.tcp_max_syn_backlog ...

  7. Linux下查找nginx配置文件路径

    1.查看nginx进程 ps -aux | grep nginx 2.测试Nginx配置文件 /usr/local/nginx/sbin/nginx -t

  8. Linux下查找Nginx配置文件位置

    1.查看Nginx进程 命令: ps -aux | grep nginx 圈出的就是Nginx的二进制文件 2.测试Nginx配置文件 /usr/sbin/nginx -t 可以看到nginx配置文件 ...

  9. python修改nginx配置文件_zookeeper 动态管理nginx配置

    假设我们有一个场景,所有服务器共享同一份配置文件,我们肯定不可能单独手动维护每台服务器,这时可以利用zookeeper的配置管理功能. 环境:python + nginx + zookeeper 目的 ...

最新文章

  1. 大数据处理时用到maven的repository
  2. 开发者必备的15 个Web开发工具
  3. 牛客题霸 NC29 二维数组中的查找
  4. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录
  5. mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
  6. Linux驱动开发流程四步走
  7. 商业认知,市场总是不按常理出牌
  8. python 交集_Python设置交集
  9. windows中的过滤绑定如何动态卸载
  10. 第二节--PHP5 的对象模型 -- Classes and Objects in PHP5 [2](转)
  11. DirectX修复工具在线修复版
  12. 淘宝自动发货源码,网店自动值守发货系统 不限制域名 支持客户自助提货及自动评价...
  13. 一个20岁工作了4年男网管真情自白书
  14. VUE面试题-2022
  15. 硕士论文查重原理与快速通过的七大方法(转载)
  16. 抖音OAuth2.0快速登录源码
  17. struts2 国际化 中文乱码英文不乱码问题
  18. Ethernet0没有有效的IP配置
  19. 情人节c语言程序,情人节c语言代码.doc
  20. 班级页面设计——【2-主界面部分】

热门文章

  1. 将光标放在EditText的文本末尾
  2. match_parent和fill_parent有什么区别?
  3. 数据库封装 sql server mysql_sqlserver数据库操作封装
  4. python趋势回归_Python 回归分析 - 树懒学堂
  5. ❤️《Vue前端基础框架集合从入门到高级》(小白也可学,建议收藏)❤️
  6. 仿土豆网显示隐藏遮罩案例(HTML、CSS)
  7. JUC并发编程中的集合不安全问题源码解析
  8. 实验3-4 统计字符 (15 分)
  9. QTableWidget动态添加QComboBox并获取表格单元的Widget类型
  10. django开源电子文档管理系统_基于 Python 开发的在线文档系统