Nginx+Tomcat动静态资源分离

1 创建用户、用户组

    useradd -g users www

    passwd www //设置密码,否则该用户不可用

    groupadd -g 888 www //创建用户组

    gpasswd -a www www //将用户www加入用户组www

2 下载nginx、pcre(正则使用)

    wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.46.tar.gz

     wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz

3 安装pcre

    tar zxvf pcre-8.10.tar.gz

    cd pcre-8.10/

    ./configure

    make

    make install

4 安装nginx

    tar zxvf nginx-0.8.46.tar.gz

    cd nginx-0.8.46/

    ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --    with-http_ssl_module

    make

    make install

5 nginx.conf配置
    user www www;

    #最好与cpu核数相同
    worker_processes  8;

    error_log /usr/local/nginx/logs/nginx_error.log crit;
    pid /usr/local/nginx/nginx.pid;

    worker_rlimit_nofile 65535;

    events {
         use epoll;
         worker_connections  65535;
    }
    http {
        include mime.types;
        default_type application/octet-stream;

         #charset gb2312;

         server_names_hash_bucket_size 128;  
         client_header_buffer_size 32k;  
         large_client_header_buffers 4 32k;  
         client_max_body_size 8m;

         sendfile        on;
         tcp_nopush     on;

         keepalive_timeout  60;

         tcp_nodelay on;  
 
         fastcgi_connect_timeout 300;  
         fastcgi_send_timeout 300;  
         fastcgi_read_timeout 300;  
         fastcgi_buffer_size 64k;  
         fastcgi_buffers 4 64k;  
         fastcgi_busy_buffers_size 128k;  
         fastcgi_temp_file_write_size 128k;  
 
         gzip on;  
         gzip_min_length  1k;  
         gzip_buffers     4 16k;  
         gzip_http_version 1.0;  
         gzip_comp_level 2;  
         gzip_types  text/plain application/x-javascript text/css application/xml;  
         gzip_vary on;  
 
         #limit_zone  crawler  $binary_remote_addr  10m;

        server {
            listen       80;
            server_name  www.nginxtest.com 192.168.1.177;
            index index.html index.htm index.jsp index.do;
            root /usr/local/nginx/html/myloan;
           #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
            location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
             { 
                  root /usr/local/nginx/html/myloan; 
                  #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
                   expires      7d; 
               } 
          #所有jsp、do的动态请求都交给后面的tomcat处理 
          location ~ (\.jsp)|(\.do)$ 
         { 

              #tomcat地址
              proxy_pass http://192.168.1.177:8080;  
              proxy_redirect off;  
              proxy_set_header HOST $host;  
              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;  
              proxy_send_timeout 90;  
              proxy_read_timeout 90;  
              proxy_buffer_size 4k;  
              proxy_buffers 4 32k;  
              proxy_busy_buffers_size 64k;  
              proxy_temp_file_write_size 64k;  
       }      
 
         log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '  
              '$status $body_bytes_sent "$http_referer" '  
              '"$http_user_agent" $http_x_forwarded_for';  
         access_log  /usr/local/nginx/logs/access.log  access;  
 
     }
     server  
      {  
          listen  80;  
          server_name  www.server.nginxtest.com;  
 
          location / {  
          stub_status on;  
           access_log   off;  
      }  
   }
}

6 启动nginx

    1. 重新运行一下/usr/local/nginx/sbin/nginx
    2. 重启nginx:/usr/local/nginx/sbin/nginx -s reload

7 停止nginx

    1:查询nginx主进程号
          ps -ef | grep nginx
    在进程列表里 面找master进程,它的编号就是主进程号了。
    2:发送信号
        从容停止Nginx:
            kill -QUIT 主进程号
        快速停止Nginx:
            kill -TERM 主进程号
        强制停止Nginx:
            pkill -9 nginx

 

 

 

 

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

 

1 创建用户、用户组

1
2
3
4
useradd -g users www
passwd www //设置密码,否则该用户不可用
groupadd -g 888 www //创建用户组
gpasswd -a www www //将用户www加入用户组www

2 下载nginx、pcre(处理url重写)

1
2
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.46.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz

3 安装 pcre

1
2
3
4
5
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
make
make install

4 安装 nginx

1
2
3
4
5
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module -- with-http_ssl_module
make
make install

5 nginx.conf 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
user www www;
#最好与 cpu 核数相同
worker_processes  8;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  65535;
}
http {
    include mime.types;
    default_type application/octet-stream;
    #charset gb2312;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  60;
    tcp_nodelay on;
  
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
  
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types  text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
  
    #limit_zone  crawler  $binary_remote_addr  10m;
    server {
        listen       80;
        server_name  www.nginxtest.com 192.168.1.177;
        index index.html index.htm index.jsp index.do;
        root /usr/local/nginx/html/myloan;
        #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
        location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
        {
            root /usr/local/nginx/html/myloan;
            #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
            expires      7d;
        }
        #所有jsp、do的动态请求都交给后面的tomcat处理
        location ~ (\.jsp)|(\.do)$
        {
            #tomcat地址
            proxy_pass http://192.168.1.177:8080;
            proxy_redirect off;
            proxy_set_header HOST $host;
            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;
            proxy_send_timeout 90;
            proxy_read_timeout 90;
            proxy_buffer_size 4k;
            proxy_buffers 4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
        }    
  
        log_format access '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
        access_log  /usr/local/nginx/logs/access.log  access;
    }
    server 
    {
        listen  80;
        server_name  www.server.nginxtest.com;
  
        location / {
            stub_status on;
            access_log   off;
        }
    }
}

6 启动nginx

1. 重新运行一下:

1
/usr/local/nginx/sbin/nginx

2. 重启nginx:

1
/usr/local/nginx/sbin/nginx -s reload

7 停止nginx

1:查询nginx主进程号

1
ps -ef | grep nginx

在进程列表里 面找master进程,它的编号就是主进程号了。

2:发送信号

从容停止Nginx:

1
kill -QUIT 主进程号

快速停止Nginx:

1
kill -TERM 主进程号

强制停止Nginx:

1
pkill -9 nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当你的手被502粘住了要怎么做?

1 看清楚,这是大裤衩子▼这才是 jk 裙▼2 天天看你们骂海王男友其实我有一个河神男友▼3 当你的手被502粘住了怎么办?▼4 不能指望食堂阿姨了自己动手丰衣足食▼5 当你被别人夸奖时▼6 宅在家里也能拍大片▼7 是我本人没错了▼你点的每个赞&#…

excel 如何替换带上标的文字_如何在Excel中批量提取中文汉字和英文字母

1. 在数据源的右边分别命名新的两列为“中文名”和“英文名”,然后将数据源复制到“中文名”这一列。2. 为了确保英文名字可以连在一起,这里我们在有空格的英文名字中间添加一个“-”。选择“中文名”下所有数据源,按CtrlF,点击“…

国内最大.NET平台重金招募中 你竟然还不知道?

各位路过的捎带眼瞅见的不小心翻到的英雄好汉请留步~让小编来带你康康这个胆敢号称国内最大的.NET的平台到底有何惊人之处一难道是因为它有--“最敢”的生态开放平台技术驱动商业创新,数字引领企业的未来,明源云通过多年专业积累,融合多种创新…

GChemPaint-绘制化学分子布局

Toy Posted in AppsRSSTrackbackGChemPaint 是专门用来绘制 2D 的化学分子布局软件,它合用于 GNOME 桌面。经由历程它所绘制的化学分子布局可以被嵌入到其他的应用程序中。Download GChemPaint 0.7.91版权声明: 原创作品,允许转载&#xff0c…

JAVA编程经验汇总 (载)

1. 关于动态加载机制?? 学习Java比C更容易理解OOP的思想,毕竟C还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制&a…

软件开发有哪些规范和标准_深圳APP软件开发的流程是什么?

深圳APP软件开发的流程是什么?APP软件开发是根据用户需求构建软件系统或设备的软件部分的过程,是一项系统工程,包括需求捕获,需求分析,系统设计,系统实现和系统测试。APP软件通常以某种编程语言实现&#x…

第十六周项目3-有相同数字?

输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字。 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学计算机学院 * All right reserv…

一键对频对讲机好吗_对讲机的基础知识你都知道多少呢?

对讲机或PMR是手持式便携式无线电,可在单个共享频带上使用无线电波进行无线通信。这使Walkie Talkies成为以低成本与大范围人群保持联系的最有效方法之一。双向无线电功能强大,易于使用且易于使用。它们特别适合在户外或在手机或平板电脑过于精致或超出信…

女儿学会走路了,是不是该教她学Python了?

1 哈哈哈,20个人其实都是精准客户▼2 搬沙发一定不要穿的太正式!▼3 横竖都是死让我先打完这场游戏先▼4 只要你学会这支舞你就是你妈的好朋友▼5 你能体会到这只阿拉斯加的惆怅吗?▼6 这双鞋一看就是全球限量有钱都买不到的那种▼7 我…

html游戏怎么做,HTML5 制做“游戏”的一个基本流程

怎样用HTML5 Canvas制作一个简单的游戏为了让大家清楚HTML5制作游戏的简单流程,所以先了制作一个非常简单的游戏,来看一看这个过程。游戏非常简单,无非就是英雄抓住怪物就得分,然后游戏重新开始,怪物出现在地图的随机位…

.NET 6 的 docker 镜像可以有多小

.NET 6 的 docker 镜像可以有多小?Intro最近写了一个小玩具,一个命令行调用 HTTP API 的工具,介绍可以参考:动手造轮子 —— dotnet-HTTPie,最近在使用 System.CommandLine 重构的同时,也在尝试减少 docker 镜像的大小…

开源播放器 Banshee 发布 1.0 beta 2

Banshee也是个很是不错的开源播放器,同时也是SuSE的内置播放器,默许支持靠山播放,消息区域告诉,可以快速跳过以后曲目,评分等等,也支持全局热键,媒体库支持音频和视频.新版本提供了对网络视频和PodCast的优秀支持.SuSE/Ubuntu/Fedora Linux用户可以从源中直接安置,也可以下载安…

仓库每天的账怎样做_新年第一站,济南:仓储匠人仓库问题解决与实战力培训...

【时间地点】1月15-16日,济南站济南市天桥区无影山北路88号祥云酒店5楼(师范路西口)【报名方式】直接加微信号“taishan33976”,注明姓名公司名仓储匠人。如果您认识小编的任意一位同事,欢迎直接找他们报名。【培训价格】1960元/人&#xff0…

【编程好习惯】将常量放在“==”之前

对于图1中的程序其中存在一个问题,那就是38行if语句中的判断条件,这一程序的结果是只有else语句中的程序会被执行。其中的错误在于,if语句中本应是“”,但却被误写成了“”,因而_p_ref中的prev_被斌值成了零&#xff0…

一对一指导怎么追喜欢的男生

1 它们是怎样达成平衡的2 OK. 对不起打扰了3 今天也要加油鸭!4 以色列一个父亲,为她“坐没坐相”的女儿打造的椅子。5 这个床我爱了6 静冈花火大会上摄影师发现了一个有趣的角度7 怎么样学会了吗内容自奔现翻车现场你点的每个赞,我都认真当成…

html 存储登录状态,Vue中保存用户登录状态实例代码

首先我们假设,这里的登录组件(register.vue)是App.vue组件的子组件,是通过路由进入登录组件的。登录组件中用户点击登录后,后台会传过来一个用户名,我的App.vue组件中需要拿到这个用户名,并将上面的“登录注册”字样变…

android canvas_Android 如何实现气泡选择动画

作者:Irina Galata Android 开发者: Yulia Serbenenko UI/UX 设计师 译者:skyar2009链接:https://juejin.im/post/58e5ec838d6d8100616d82e2/跨平台用户体验统一正处于增长趋势:早些时候 iOS 和安卓有着不同的体验,但是…

MVC中的验证规则

前面的博客中曾经提到过ModelBing机制,也在Demo中体现过,在MVC中更吊的是封装了自定义的验证规则。下面来一个Demo来展现一下,看了后,你一定会爱上它的,能让你少写很多JS语句。 1.View层 [html] view plaincopyprint…

网络——在网络上发送,接收数据

问题 创建并加入一个网络会话是一回事,但如果不能发送或接收任何数据那么网络会话有什么用呢? 解决方案 当玩家连接到会话时,你可以在一个PacketWriter流中存储所有想要发送的数据。完成这个操作后,你可以使用LocalNetworkPlayer.…

微服务之 EShop on dapr概览

????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!????本文作者:由webmote 原创,首发于 【掘金】????作者格言:生活在于折腾,当你不折…