Nginx与Tomcat安装、配置与优化

Nginx与Tomcat安装、配置与优化

Nginx的安装与使用

Nginx是一款优秀的反向代理服务器

安装:

  1. rpm(或者是pkg安装),是预编译好的程序包安装
  2. yum(或者apt-get)安装,自动联网下载安装包,自动管理依赖关系
  3. 编译安装
    1. 检查和安装依赖项

      yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

    2. configure
    3. make && make install

启动、停止、重启:

安装好后,测试nginx服务:

1.service nginx status

然后应该返回nginx is stopped

启动:

1.service nginx start

停止:

1.service nginx stop

重启:

1.service nginx restart

启动成功后会在网页中显示

设置开机启动

vi /etc/rc.d/rc.local

编辑这个文件

加上最后一行/opt/nginx/sbin/nginx

Nginx的配置

nginx的配置文件nginx.conf

1.[root@iZ28gvqe4biZ ~]# locate nginx2./etc/nginx3./etc/nginx/conf.d4./etc/nginx/default.d5./usr/share/nginx6./usr/share/augeas/lenses/dist/nginx.aug7./usr/share/nginx/html8.[root@iZ28gvqe4biZ ~]# cd /etc/nginx/9.[root@iZ28gvqe4biZ nginx]# ls10.conf.d     fastcgi_params  koi-win     nginx.conf   uwsgi_params11.default.d  koi-utf         mime.types  scgi_params  win-utf12.[root@iZ28gvqe4biZ nginx]# 13.vi nginx.conf

nginx是一个基于模块化设计的一个应用程序

1.# 顶层配置信息管理服务器级别行为2.worker_processes  1;3.4.# event指令与事件模型有关,配置处理连接有关信息5.events {6.    worker_connections  1024;7.}8.9.# http指令处理http请求10.http {11.    # mime type映射12.    include       mime.types;13.    default_type  application/octet-stream;14.15.    sendfile        on;16.    #tcp_nopush     on;17.18.    #keepalive_timeout  0;19.    keepalive_timeout  65;20.21.    #gzip  on;22.23.    # server 表示一个虚拟主机,一台服务器可配置多个虚拟主机24.    server {25.        # 监听端口26.        listen       80;27.        # 识别的域名28.        server_name  localhost;29.30.        # 一个关键设置,与url参数乱码问题有关31.        charset utf-8;32.33.        #access_log  logs/host.access.log  main;34.35.        #location表达式:36.        #syntax: location [=|~|~*|^~|@] /uri/ { … }37.        #分为两种匹配模式,普通字符串匹配,正则匹配38.        #无开头引导字符或以=开头表示普通字符串匹配39.        #以~或~* 开头表示正则匹配,~*表示不区分大小写40.        #多个location时匹配规则41.        #总体是先普通后正则原则,只识别URI部分,例如请求为/test/1/abc.do?arg=xxx42.        #1. 先查找是否有=开头的精确匹配,即location = /test/1/abc.do {...}43.        #2. 再查找普通匹配,以 最大前缀 为规则,如有以下两个location44.        #   location /test/ {...}45.        #   location /test/1/ {...}46.        #   则匹配后一项47.        #3. 匹配到一个普通格式后,搜索并未结束,而是暂存当前结果,并继续再搜索正则模式48.        #4. 在所有正则模式location中找到第一个匹配项后,以此匹配项为最终结果49.        #   所以正则匹配项匹配规则受定义前后顺序影响,但普通匹配不会50.        #5. 如果未找到正则匹配项,则以3中缓存的结果为最终结果51.        #6. 如果一个匹配都没有,返回40452.53.        #location =/ {...} 与 location / {...} 的差别54.        #前一个是精确匹配,只响应/请求,所有/xxx类请求不会以前缀匹配形式匹配到它55.        #而后一个正相反,所有请求必然都是以/开头,所以没有其它匹配结果时一定会执行到它56.57.        #location ^~ / {...} ^~意思是非正则,表示匹配到此模式后不再继续正则搜索58.        #所有如果这样配置,相当于关闭了正则匹配功能59.        #因为一个请求在普通匹配规则下没得到其它普通匹配结果时,最终匹配到这里60.        #而这个^~指令又相当于不允许正则,相当于匹配到此为止61.        location / {62.            root   html;63.            index  index.html index.htm;64.            # deny all; 拒绝请求,返回40365.            # allow all; 允许请求66.        }67.68.        location /test/ {69.            deny all;70.        }71.72.        location ~ /test/.+\.jsp$ {73.           proxy_pass  http://192.168.1.62:8080;74.        }75.76.        location ~ \.jsp$ {77.           proxy_pass  http://192.168.1.61:8080;78.        }79.80.        # 定义各类错误页81.        error_page  404              /404.html;82.83.        # redirect server error pages to the static page /50x.html84.        #85.        error_page   500 502 503 504  /50x.html;86.        location = /50x.html {87.            root   html;88.        }89.90.        # @类似于变量定义91.        # error_page 403 http://www.jikexueyuan.com这种定义不允许,所以利用@实现92.        error_page 403 @page403;93.        location @page403 {94.            proxy_pass http://http://www.jikexueyuan.com;95.        }96.    }97.98.99.    # another virtual host using mix of IP-, name-, and port-based configuration100.101.    server {102.        listen       80;103.        #listen 9090104.        server_name  www.test.com test.com other.cc;105.106.        location / {107.            # root d:\\test; 注意,win下d:\test因转义符问题不允许108.            root d:/test109.            index  index.html index.htm;110.        }111.    }112.}113.

Nginx的优化

1.2.# nginx不同于apache服务器,当进行了大量优化设置后会魔术般的明显性能提升效果3.# nginx在安装完成后,大部分参数就已经是最优化了,我们需要管理的东西并不多4.5.#user  nobody;6.7.#阻塞和非阻塞网络模型:8.#同步阻塞模型,一请求一进(线)程,当进(线)程增加到一定程度后9.#更多CPU时间浪费到切换一,性能急剧下降,所以负载率不高10.#Nginx基于事件的非阻塞多路复用(epoll或kquene)模型11.#一个进程在短时间内可以响应大量的请求12.#建议值 <= cpu核心数量,一般高于cpu数量不会带好处,也许还有进程切换开销的负面影响13.worker_processes 1;14.15.#将work process绑定到特定cpu上,避免进程在cpu间切换的开销16.worker_cpu_affinity 000117.#8内核4进程时的设置方法 worker_cpu_affinity 00000001 00000010 00000100 1000000018.19.# 每进程最大可打开文件描述符数量(linux上文件描述符比较广义,网络端口、设备、磁盘文件都是)20.# 文件描述符用完了,新的连接会被拒绝,产生502类错误21.# linux最大可打开文件数可通过ulimit -n FILECNT或 /etc/security/limits.conf配置22.# 理论值 系统最大数量 / 进程数。但进程间工作量并不是平均分配的,所以可以设置的大一些23.worker_rlimit_nofile 655350 24.25.#error_log  logs/error.log;26.#error_log  logs/error.log  notice;27.#error_log  logs/error.log  info;28.#pid        logs/nginx.pid;29.30.31.events {32.    # 并发响应能力的关键配置值33.    # 每个进程允许的最大同时连接数,work_connectins * worker_processes = maxConnection;34.    # 要注意maxConnections不等同于可响应的用户数量,35.    # 因为一般一个浏览器会同时开两条连接,如果反向代理,nginx到后端服务器的连接也要占用连接数36.    # 所以,做静态服务器时,一般 maxClient = work_connectins * worker_processes / 237.    # 做反向代理服务器时 maxClient = work_connectins * worker_processes / 438.39.    # 这个值理论上越大越好,但最多可承受多少请求与配件和网络相关,也可最大可打开文件,最大可用sockets数量(约64K)有关40.    worker_connections  500;41.42.    # 指明使用epoll 或 kquene (*BSD)43.    use epoll44.45.    # 备注:要达到超高负载下最好的网络响应能力,还有必要优化与网络相关的linux内核参数46.}47.48.49.http {50.    include       mime.types;51.    default_type  application/octet-stream;52.53.    #log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘54.    #                  ‘$status $body_bytes_sent "$http_referer" ‘55.    #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;56.57.    # 关闭此项可减少IO开销,但也无法记录访问信息,不利用业务分析,一般运维情况不建议使用58.    access_log off59.    # 只记录更为严重的错误日志,可减少IO压力60.    error_log logs/error.log crit;61.    #access_log  logs/access.log  main;62.63.    # 启用内核复制模式,应该保持开启达到最快IO效率64.    sendfile        on;65.66.    # 简单说,启动如下两项配置,会在数据包达到一定大小后再发送数据67.    # 这样会减少网络通信次数,降低阻塞概率,但也会影响响应及时性68.    # 比较适合于文件下载这类的大数据包通信场景69.    #tcp_nopush     on; 在 70.    #tcp_nodelay on|off on禁用Nagle算法 71.72.    #keepalive_timeout  0;73.74.    # HTTP1.1支持持久连接alive75.    # 降低每个连接的alive时间可在一定程度上提高可响应连接数量,所以一般可适当降低此值76.    keepalive_timeout  30s;77.78.    # 启动内容压缩,有效降低网络流量79.    gzip on;    80.    # 过短的内容压缩效果不佳,压缩过程还会浪费系统资源81.    gzip_min_length 1000;82.    # 可选值1~9,压缩级别越高压缩率越高,但对系统性能要求越高83.    gzip_comp_level 4;84.    # 压缩的内容类别85.    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;86.87.    # 静态文件缓存88.    # 最大缓存数量,文件未使用存活期89.    open_file_cache max=655350 inactive=20s;90.    # 验证缓存有效期时间间隔91.    open_file_cache_valid 30s;92.    # 有效期内文件最少使用次数93.    open_file_cache_min_uses 2;94.95.    server {96.        listen       80;97.        server_name  localhost;98.99.        #charset koi8-r;100.101.        #access_log  logs/host.access.log  main;102.103.        location / {104.            root   html;105.            index  index.html index.htm;106.        }107.108.        #error_page  404              /404.html;109.110.        # redirect server error pages to the static page /50x.html111.        #112.        error_page   500 502 503 504  /50x.html;113.        location = /50x.html {114.            root   html;115.        }116.117.        # proxy the PHP scripts to Apache listening on 127.0.0.1:80118.        #119.        #location ~ \.php$ {120.        #    proxy_pass   http://127.0.0.1;121.        #}122.123.        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000124.        #125.        #location ~ \.php$ {126.        #    root           html;127.        #    fastcgi_pass   127.0.0.1:9000;128.        #    fastcgi_index  index.php;129.        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;130.        #    include        fastcgi_params;131.        #}132.133.        # deny access to .htaccess files, if Apache‘s document root134.        # concurs with nginx‘s one135.        #136.        #location ~ /\.ht {137.        #    deny  all;138.        #}139.    }140.141.142.    # another virtual host using mix of IP-, name-, and port-based configuration143.    #144.    #server {145.    #    listen       8000;146.    #    listen       somename:8080;147.    #    server_name  somename  alias  another.alias;148.149.    #    location / {150.    #        root   html;151.    #        index  index.html index.htm;152.    #    }153.    #}154.155.156.    # HTTPS server157.    #158.    #server {159.    #    listen       443 ssl;160.    #    server_name  localhost;161.162.    #    ssl_certificate      cert.pem;163.    #    ssl_certificate_key  cert.key;164.165.    #    ssl_session_cache    shared:SSL:1m;166.    #    ssl_session_timeout  5m;167.168.    #    ssl_ciphers  HIGH:!aNULL:!MD5;169.    #    ssl_prefer_server_ciphers  on;170.171.    #    location / {172.    #        root   html;173.    #        index  index.html index.htm;174.    #    }175.    #}176.177.}178.

Tomcat的安装使用

Tomcat的安装需要JDK的支持,所以在服务器上要先安装JDK(详情看前面文章)并配置环境变量

下载安装tomcat:http://tomcat.apache.org/

解压文件,解压完成直接就可以使用

进入目录下,执行bin/startup.sh

执行成功后会显示

1.Tomcat started

默认情况下,在linux下是后台运行的,因此控制台是看不到的,如果要看到log文件输出,则在目录下有一个logs文件夹,文件夹内有个catalina.out文件,查看它也就知道了整个运行结果

1.cat catalina.out

如果想要实时监控,则可以

1.tail -f catalina.out

停止Tomcat的运行

1.bin/shutdown.sh

设置开机自动运行vi /etc/rc.d/rc.local

在最后加上

1.export JAVA_HOME=/opt/jdk1.8.0_512.$JAVA_HOME/bin/startup.sh

由于rc.local文件与profile文件的启动顺序不一样,而且使用的脚本也不一样,所以有可能JAVA是不能一开始读到的,也就是说Tomcat没有JDK启动失败,所以要重新设置JAVA的环境变量

Tomcat的配置与优化

  • 内存使用配置catalina.sh

    中间的位置,有

1.# Uncomment the following line to make the umask available when using the2.# org.apache.catalina.security.SecurityListener3.#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"4.5.# windows下设置方法6.#set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx512m -XX:PermSize=512M -XX:MaxPermSize=512m 7.# 通过内存设置充分利用服务器内存8.# -server模式启动应用慢,但可以极大程度提高运行性能9.# java8开始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不会再有java.lang.OutOfMemoryError: PermGen space,可以不设置10.# headless=true适用于linux系统,与图形操作有关,如生成验证码,含义是当前使用的是无显示器的服务器,应用中如果获取系统显示有关参数会抛异常11.# 可通过jmap -heap proccess_id查看设置是否成功12.JAVA_OPTS=$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true13.# ----- Execute The Requested Command -----------------------------------------14.
  • 最大连接数配置server.xml

    在中间部分

1.    <!-- protocol 启用 nio模式,(tomcat8默认使用的是nio)(apr模式利用系统级异步io) -->2.    <!-- minProcessors最小空闲连接线程数-->3.    <!-- maxProcessors最大连接线程数-->4.    <!-- acceptCount允许的最大连接数,应大于等于maxProcessors-->5.    <!-- enableLookups 如果为true,requst.getRemoteHost会执行DNS查找,反向解析ip对应域名或主机名-->6.    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 7.        connectionTimeout="20000"8.        redirectPort="84439.10.        maxThreads=“500” 11.        minSpareThreads=“100” 12.        maxSpareThreads=“200”13.        acceptCount="200"14.        enableLookups="false"       15.    />
时间: 2024-10-26 12:32:16

Nginx与Tomcat安装、配置与优化的相关文章

Linux之tomcat 安装&配置&优化

Tomcat简介: 1.Tomcat就是用来解析jsp程序的一个软件 .(jsp是一种编程语言,即JAVA) 2.Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由   Apache.Sun和其他一些公司及个人共同开发而成. 3.Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开   发和调试JSP程序的首选. Tomcat的安装分为两个步骤:安装JDK和安装Tomca

Nginx、Tomcat线上环境优化配置

 Nginx.Tomcat线上环境优化配置 Nginx优化: Nginx安全方面的优化: 1. nginx安全优化,在nginx配置文件http标签段内添加"server_tokens  off"即可隐藏访问或者报错时提示web版本号信息. 2. server_tokens参数可以在http,server,location的位置添加 3. 还可以修改nginx的3个源码文件 4. 如还需要安全优化更改端口.用户. nginx 性能优化: 对于nginx配置文件中对优化比较有作用的一般为

大数据技术之_30_JVM学习_01_JVM 位置+JVM 体系结构概览+堆体系结构概述+堆参数调优入门+JVM 的配置和优化+Tomcat 的配置和优化

1.JVM 位置2.JVM 体系结构概览3.堆体系结构概述4.堆参数调优入门5.JVM 的配置和优化6.Tomcat 的配置和优化 熟悉 JVM 架构与 GC 垃圾回收机制以及相应的 JVM 调优,有过在 Linux 系统下的调优经验. 淘宝的周志明<深入理解 Java 虚拟机>中说 JVM 的优化,其中 99% 优化的是堆,1% 优化的是方法区. 内地女歌手照片--李嘉欣,贴在桌面上. 1.JVM 位置 JVM 是运行在操作系统之上的,它与硬件没有直接的交互 2.JVM 体系结构概览 详解如

Linux系统下JDK和Tomcat安装配置

Linux系统下JDK安装配置 1. 从oracle网站下载需要的JDK软件 :jdk-6u39-linux-i586.bin http://www.oracle.com/technetwork/java/javase/archive-139210.html 然后通过FTP上传到linux服务器上. 2. 将文件copy到/usr目录下 [[email protected] wendy]# cp jdk-6u39-linux-i586.bin /usr/ 3. 给文件添加执行权限: [[emai

Redhat下Tomcat安装配置

1.下载Tomcat的tar.gz包(tomcat依赖java环境,如未装JDK需先安装JDK) curl -O http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.tar.gz 2.解压缩tar.gz mkdir /usr/local/server tar -zxvf apache-tomcat-6.0.41.tar.gz -C /usr/local/server 3.测试Tomcat运

Zookeeper、Solr和Tomcat安装配置实践

Zookeeper.Solr和Tomcat安装配置实践

tomcat 安装配置部署到nginx+tomcat+https

目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2.5 启动Tomcat 3.2 Tomcat管理 8 搭建jpress--java 版本的wordpress tomcat 配置文件 conf/server.xml tomcat 自定义网站目录 Tomcat多实例 (多个虚拟主机) tomcat反向代理集群 tomcat监控 zabbix监控 ng

Nginx+Tomcat 安装配置

一.安装JDK 下载相应的jdk包,解压.配置环境变量 本文使用jdk-8u144-linux-x64.tar.gz tar -zxvf jdk-8u144-linux-x64.tar.gz mkdir -p /usr/java/ mv jdk1.8.0_144/ /usr/java/ 在/etc/profile后面加入以下语句: export JAVA_HOME=/usr/java/jdk1.8.0_144  export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

nginx+tomcat安装配置

Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.可以这样认为,当在一台机器上配置好Tomcat服务器,可利用它响应对HTML 页面的访问请求.实际上Tomcat 部分是Nginx服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Nginx 独立的进程单独运行的. 安装tomcat Tomcat的安装分为两个步骤:安装JDK和安装Tomcat. JDK(Java Development Kit)是S