• 最后的配置部分:LNMP+Tomcat


    Nginx与PHP部分

    mkdir /www/php -p
    echo -e "<?php
    	phpinfo();
    ?>" > /www/php/index.php
    vim /usr/local/nginx/conf/nginx.conf
    #==============Nginx代理PHP端===================
            location ~ .php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #上面那个注视掉,改成下面的不然就出FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream这个错
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
    }

    Nginx+Tomcat部分

    mkdir /www/jsp -p
    echo "this is jsp" >>/www/jsp/index.jsp
    echo "this is jsp" >>/www/do/index.do
    vim /usr/local/tomcat/conf/server.xml

    配置Tomcat中的server.conf,修改tomcat家目录

    vim /usr/local/tomcat/conf/server.xml
    <!-- 索搜此项修改默认WEB端口,这里默认保持不变 -->
        <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000"
                   redirectPort="8443" />
    <!-- 可以修改域名或者IP,但作代理请保持localhost -->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
    <!-- 新增此项修改WEB的家目录 -->
            <Context path="" docBase="/www"></Context>

    配置nginx中的nginx.conf,让其能代理jsp网页

    #==========Nginx代理JSP段================
            location ~ (.jsp)|(.do)$ {
                index index.jsp;
                proxy_pass http://127.0.0.1:8080;   #来自jsp请求交给tomcat处理
                proxy_redirect off;
                proxy_set_header Host $host;    #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size 10m;   #允许客户端请求的最大单文件字节数
                client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
                proxy_connect_timeout 90;   #nginx跟后端服务器连接超时时间(代理连接超时)
                proxy_read_timeout 90;      #连接成功后,后端服务器响应时间(代理接收超时)
                proxy_buffer_size 4k;       #设置代理服务器(nginx)保存用户头信息的缓冲区大小
                proxy_buffers 6 32k;        #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
                proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
                proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
            }
            location ~ .*.(gif|jpg|png|bmp|swf)$   #由nginx处理静态页面
            {
            expires 30d;   #使用expires缓存模块,缓存到客户端30天
            }
            error_page  404              /404.html;   #错误页面
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }

    ------------------------------------------

    完整的nginx.conf文件,仅供参考

    user  www;
    worker_processes  1;
    error_log  logs/error.log;
    pid        logs/nginx.pid;
    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;
        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k; #客户端请求头部的缓冲区大小,一般一个请求头的大小不会超过1k
        large_client_header_buffers 4 32k; #客户请求头缓冲大小 nginx默认会用client_header_buffer_size这个buffer来读取header值
        client_max_body_size 8m; #设定通过nginx上传文件的大小
        sendfile        on;
        keepalive_timeout  65;
    
     #===================重要位置============
        fastcgi_connect_timeout 300; #指定连接到后端FastCGI的超时时间。
        fastcgi_send_timeout 300; #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送>请求的超时时间。
        fastcgi_read_timeout 300; #接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答>的超时时间。
        fastcgi_buffer_size 254k; #指定读取FastCGI应答第一部分需要用多大的缓冲区
        fastcgi_buffers 16 256k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。
        fastcgi_busy_buffers_size 512k; #这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers的两倍
    。
        fastcgi_temp_file_write_size 512k; #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍。
        #gzip  on;
        gzip              on; #该指令用于开启或关闭gzip模块(on/off)
        gzip_min_length   1k; #设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获>取
        gzip_buffers      4 16k; #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流
        gzip_http_version 1.0; #识别http的协议版本
        gzip_comp_level   2;   #gzip压缩比,1压缩比最小处理速度最快
             #匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的
        gzip_types        text/plain application/x-javascript text/css application/xml text/javascript;
        gzip_vary         on; #和http头有关系,加个vary头,给代理服务器用的
        server {
            listen       80;
            server_name 自己的网站名;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            root /www;
            location / {
                index  index.html index.htm index.jsp index.php;
            }
    #===========PHP段=================
            location ~ .php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               include        fastcgi_params;
            }
    #============Tomcat段=============
            location ~ (.jsp)|(.do)$ {
                index index.jsp;
                proxy_pass http://127.0.0.1:8080;   #来自jsp请求交给tomcat处理
                proxy_redirect off;
                proxy_set_header Host $host;    #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size 10m;   #允许客户端请求的最大单文件字节数
                client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
                proxy_connect_timeout 90;   #nginx跟后端服务器连接超时时间(代理连接超时)
                proxy_read_timeout 90;      #连接成功后,后端服务器响应时间(代理接收超时)
                proxy_buffer_size 4k;       #设置代理服务器(nginx)保存用户头信息的缓冲区大小
                proxy_buffers 6 32k;        #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
                proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
                proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
            }
            location ~ .*.(gif|jpg|png|bmp|swf)$   #由nginx处理静态页面
            {
            expires 30d;   #使用expires缓存模块,缓存到客户端30天
            }
            error_page  404              /404.html;   #错误页面
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }


    ok,就到这里了

    参考:Linux下Nginx+Tomcat整合的安装与配置

  • 相关阅读:
    选择HttpHandler还是HttpModule?
    细说 ASP.NET Cache 及其高级用法
    写自己的ASP.NET MVC框架(下)
    写自己的ASP.NET MVC框架(上)
    细说Cookie
    用Asp.net写自己的服务框架
    我心目中的Asp.net核心对象
    HttpModule与HttpHandler详解
    对协变和逆变的简单理解
    .net项目技术选型总结
  • 原文地址:https://www.cnblogs.com/losbyday/p/5872427.html
Copyright © 2020-2023  润新知