Java扩展Nginx之三:基础配置项

这篇具有很好参考价值的文章主要介绍了Java扩展Nginx之三:基础配置项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

本篇概览

  • 经历了前面两篇的入门和编译源码之后,从本篇起,咱们用理论结合实战的方式进入系统的nginx-clojure学习之旅
  • 作为《Java扩展Nginx》系列的第三篇,本文会与大家一起了解nginx-clojure基本的配置项,通过它们来掌控和优化自己的应用,以下是本篇的主要内容:
  1. java进程数量
  2. 配置项:jvm_path
  3. 配置项:jvm_classpath
  4. 配置项:jvm_var
  5. 配置项:jvm_options
  6. 配置项:jvm_handler_type

java进程数量

  • 当nginx运行起来后,究竟有多少个java进程?这个应该是最需要弄清楚的问题,举个简单例子,当你的java代码在处理请求的时候,如果把一些信息放在内存中,想留给下一次请求使用,此时可能会让你失望了,因为处理下一个请求的进程可能是另一个
  • 熟悉nginx的读者对配置项worker_processes应该不陌生,这是工作进程数的配置,而nginx-clojure的java进程数量就等于worker_processes的值
  • 接下来实际验证一下,看看当前环境的nginx配置,如下图,worker_processes等于1:
    Java扩展Nginx之三:基础配置项
  • 此时执行jps命令,如下图,只有一个进程3183
    Java扩展Nginx之三:基础配置项
  • 现在将worker_processes改为10,执行nginx -s reload重新加载配置,然后用jps查看,如下图,此时已经有了10个java进程:
    Java扩展Nginx之三:基础配置项
  • 接下来是nginx.conf中与java有关的配置项,掌握了它们,我们才能将系统调整到最优状态

配置项:jvm_path

  • jvm_path是个http配置项,一般情况下,咱们可以设置为auto,如果您的环境有多个jvm,也可以指定其中的一个,具体设置方法如下(是参考设置,您要根据自己环境的情况调整),
  1. windows:C:/Program Files/Java/jdk1.7.0_25/jre/bin/server/jvm.dll
  2. macosx:/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/server/libjvm.dylib
  3. ubuntu:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so
  4. centos:/usr/java/jdk1.6.0_45/jre/lib/amd64/server/libjvm.so

配置项:jvm_classpath

  • jvm_classpath是个http配置项,指定了java进程的classpath,咱们来看看nginx-clojure官方安装包的内部结构,如下图红框,有libsjars两个目录,里面都有jar文件:
    Java扩展Nginx之三:基础配置项
  • 再看nginx-clojure官方安装包中的配置文件,如下图红框,与前面的两个文件夹对应,也就是说这两个文件夹内的所有jar都能被java进程加载:
    Java扩展Nginx之三:基础配置项

配置项:jvm_var

  • jvm_var是个http配置项,用来在配置中定义一个变量,可以个其他变量使用
  • 假设我的jvm_classpath值原本是"/usr/local/nginx/libs/*:/usr/local/nginx/jars/",可以用jvm_var做改造,将成下面这样,而jvm_classpath的真实值保持不变:
jvm_var nginxHome '/usr/local/nginx';
jvm_classpath "#{nginxHome}/libs/*:#{nginxHome}/jars/*";
  • 咱们在写脚本和配置的时候经常会用到变量,jvm_var正好派上用场

配置项:jvm_options

  • jvm_optionsoptions是个http配置项,options参数是启动jvm最常用的参数了,这里的jvm_options承担的也是这个角色,不用多说,来看几个实际配置,聪明的您肯定秒懂:
# 启动堆内存
jvm_options -Xms250m;

# 最大堆内存
jvm_options -Xmx1024m;

# 线程栈大小
jvm_options -Xss128k;

# 系统变量,代码中可以获取改变量的值
jvm_options -Djava.awt.headless=true;

配置项:jvm_handler_type

  • jvm_handler_type是个http配置项,至于它的作用,咱们先来看一个location配置,如下图红框,需要有一个content_handler_type配置项指定类型:
    Java扩展Nginx之三:基础配置项
  • 如果有多个location,而且都是java类型,岂不是每个location中都要写一个content_handler_type了?这时候,可以在http配置中增加jvm_handler_type配置项,指定location中的默认content_handler_type值,这样location中的content_handler_type就可以不写了,如下图:
    Java扩展Nginx之三:基础配置项
  • 以上就是本文要介绍的所有配置项了,虽然还剩下很多配置项未提到,例如jvm_init_handler_name、jvm_init_handler_code等,但是这些都是handle相关的配置项,而各种丰富的handler正是nginx-clojure的重要知识点,所以,这些配置会留待后面的文章中,与handler一同讲解。

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...文章来源地址https://www.toymoban.com/news/detail-546282.html

到了这里,关于Java扩展Nginx之三:基础配置项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java扩展Nginx之七:共享内存

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 作为《Java扩展Nginx》系列的第七篇,咱们来了解一个实用工具 共享内存 ,正式开始之前先来看一个问题 在一台电脑上,nginx开启了多个worker,如下图,如果此时我们用了nginx-clojure,就相当于有了四

    2024年02月16日
    浏览(29)
  • Java扩展Nginx之一:你好,nginx-clojure

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 以欣宸自己为例,对一个java程序员来说,nginx并不陌生,下图应该是最常见的使用场景了,反向代理: 除了反向代理,nginx的模块化机制让nginx具备了更多丰富的特性,例如ngx_http_log_module(日志)、

    2024年02月13日
    浏览(28)
  • Java扩展Nginx之二:编译nginx-clojure源码

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 作为《Java扩展Nginx》的第二篇,本想与大家一起开始nginx-clojure的深度之旅,但有个问题若不解决,会让大多数有兴趣的读者立即止步、关闭网页、再也不见 前文咱们使用的是nginx-clojure官方的安装包

    2024年02月13日
    浏览(39)
  • Java扩展Nginx之六:两大filter

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《Java扩展Nginx》系列的第六篇,前文的五大handler形成了nginx-clojure开发的基本框架,初步评估已经可以支撑简单的需求开发了,但nginx-clojure并未止步于handler,还提供了丰富的扩展能力,本篇的

    2024年02月16日
    浏览(28)
  • 精选版:用Java扩展Nginx(nginx-clojure 入门)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 今天咱们以Java程序员的视角,来聊聊如何用Java来扩展Nginx的能力,全文由以下内容组成: 什么是Nginx 什么是Nginx扩展 扩展Nginx,意义何在? 想用Java扩展Nginx会有问题吗? 主角登场:nginx-clojure模块,

    2024年02月09日
    浏览(29)
  • Java扩展Nginx之五:五大handler(系列最核心)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《Java扩展Nginx》系列的第五篇,如题,本篇是整个系列的最核心内容,咱们写的代码主要都集中在nginx-clojure定义的五种handler中,不同handler分别发挥着各自的作用,它们是: Initialization Handl

    2024年02月16日
    浏览(24)
  • nginx配置https访问

    为什么需要使用HTTPS,因为HTTP不安全,当使用http进行消息传输时,可能会遭到黑客的劫持和篡改,如果采用https协议,那么数据在传输过程中是加密的,所以黑客无法窃取或者篡改数据报文信息,同时也避免网站传输时信息泄露。 实现https:需要使用ssl协议。 首先需要申请证

    2024年01月22日
    浏览(30)
  • Nginx配置访问密码

    当我们配置好Nginx 服务后,为了安全,可以为Nginx设置访问密码,以保证我们的的数据安全。 Nginx为我们提供了 ngx_http_auth_basic_module 模块,该模块可以让我们自己实现对Web内容的访问能控制,访问用户必须输入正确的用户名和密码后才能进行访问。 因为需要使用到htpasswd,

    2024年02月04日
    浏览(24)
  • Nginx配置白名单访问

    一、背景 在项目运行的时候,需要设置特定的访问权限,以拒绝其他可能存在的恶意访问。 二、配置 2.1、 允许访问:allow 屏蔽访问:deny 2.2、作用域 作用域如下: http:所有网站屏蔽IP server:单独网站屏蔽IP location:单独网站单独页面屏蔽IP limit_except语

    2024年02月16日
    浏览(71)
  • nginx配置拦截访问域名

    1、Nginx Referer模块 nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求。当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。构造Referer的请求很容易实现,所以使用这个模块并不能100%的阻止这些请求。 2、valid_referers 指令 语法

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包