用nssm來管理nginx代理服務(wù)

軟件介紹

  • NSSM 簡介
    NSSM 全稱為:the Non-Sucking Service Manager褒链。
    從名稱上來看疑苔,功能應(yīng)該跟Forever類似,會自動幫你重啟兵迅,保證你的進程不會掛掉薪贫,NSSM 所采用的方式是把你的Nodejs應(yīng)用安裝為一個windows service,并開機自動運行扯夭;如果需要重啟應(yīng)用交洗,那么重啟對應(yīng)的windows服務(wù)就可以了。
  • nginx 簡介
    反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求隐圾,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器暇藏,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端盐碱,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器瓮顽。
    反向代理方式實際上就是一臺負(fù)責(zé)轉(zhuǎn)發(fā)的代理服務(wù)器围橡,貌似充當(dāng)了真正服務(wù)器的功能,但實際上并不是翁授,代理服務(wù)器只是充當(dāng)了轉(zhuǎn)發(fā)的作用晾咪,并且從真正的服務(wù)器那里取得返回的數(shù)據(jù)。這樣說谍倦,其實nginx完成的就是這樣的工作。我們讓nginx監(jiān)聽一個端口泪勒,譬如80端口,但實際上我們轉(zhuǎn)發(fā)給在8080端口的tomcat圆存,由它來處理真正的請求曹洽,當(dāng)請求完成后,tomcat返回辽剧,但數(shù)據(jù)此時沒直接返回税产,而是直接給nginx,由nginx進行返回撞羽,這里,我們會以為是nginx進行了處理邻奠,但實際上進行處理的是tomcat。
    說到上面的方式碌宴,也許很多人又會想起來贰镣,這樣可以把靜態(tài)文件交由nginx來進行處理。對膳凝,很多用到nginx的地方都是作為靜態(tài)伺服器碑隆,這樣可以方便緩存那些靜態(tài)文件,比如CSS蹬音,JS上煤,html,htm等文件祟绊。

了解nginx配置項

[your_nginx_path]\conf\nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #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;
        #}
    }

這里面有幾個需要了解的地方:

  • listen:表示當(dāng)前的代理服務(wù)器監(jiān)聽的端口楼入,默認(rèn)的是監(jiān)聽80端口哥捕。注意,如果我們配置了多個server嘉熊,這個listen要配置不一樣遥赚,不然就不能確定轉(zhuǎn)到哪里去了。
  • server_name:表示監(jiān)聽到之后需要轉(zhuǎn)到哪里去阐肤,這時我們直接轉(zhuǎn)到本地凫佛,這時是直接到nginx文件夾內(nèi)。
  • location:表示匹配的路徑孕惜,這時配置了/表示所有請求都被匹配到這里
  • root:里面配置了root這時表示當(dāng)匹配這個請求的路徑時愧薛,將會在這個文件夾內(nèi)尋找相應(yīng)的文件,這里對我們之后的靜態(tài)文件伺服很有用衫画。
  • index:當(dāng)沒有指定主頁時毫炉,默認(rèn)會選擇這個指定的文件,它可以有多個削罩,并按順序來加載瞄勾,如果第一個不存在,則找第二個弥激,依此類推进陡。
  • error_page是代表錯誤的頁面。

配置實現(xiàn)

這里我們用nginx實現(xiàn)對tomcat的真實請求微服,也就是來自于所有來自外部的請求趾疚,進入nginx的80端口進行監(jiān)聽,如果靜態(tài)文件(js,css,image等等)以蕴,由nginx直接返回糙麦,如果是別的請求將由tomcat響應(yīng),tomcat只對nginx可見.

軟件準(zhǔn)備

nssm-2.24.zip
nginx-1.11.1.zip windows版本

加入到環(huán)境變量

path=F:\server\nssm-2.24\win64;F:\server\nginx-1.11.1;

準(zhǔn)備一個nginx配置文件舒裤,靜態(tài)文件由nginx直接處理喳资,動態(tài)文件由8080端口處理

F:\server\for-tomcat-nginx.conf

#user  nobody;
worker_processes  1;

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        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    # 轉(zhuǎn)發(fā)的服務(wù)器,upstream 為負(fù)載均衡做準(zhǔn)備
     upstream tomcat_server{ 
            server localhost:8080; 
     } 

    server {
        listen       80;
        server_name  localhost;
        index index.html index.htm index.php;  
        root  F:/data/wwwtest/test-nginx/target/classes/static;  

        charset UTF-8;

        # 動態(tài)請求的轉(zhuǎn)發(fā)
        location ~ .*.action$ { 
            proxy_pass http://tomcat_server; 
            proxy_set_header Host $host; 
        } 
        # 靜態(tài)請求直接讀取
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ { 
            expires      30d; 
        }
        #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;
        }
    }
}

配置

命令行
nssm install
會彈出下面的配置界面:

Paste_Image.png

開始服務(wù)

nssm start test-nginx
同時在開啟你的tomcat服務(wù)器

Paste_Image.png

訪問/index.action

Paste_Image.png

本文件的demo文件

spring boot+web
test-nginx\src\resources\templates\application.properties

spring.mvc.view.suffix=action

test-nginx\src\test\java\com\example\DemoApplicationTests.java

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.HashMap;
import java.util.Map;

@SpringBootApplication
@Controller
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    @RequestMapping("/index")
    public ModelAndView main(){
        Map map=new HashMap();
        map.put("message","你好腾供,tomLuo!");
        return new ModelAndView("index",map);
    }
}

test-nginx\src\main\resources\template\index.ftl

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test nginx</title>
</head>
<body>
<p>這是動態(tài)頁仆邓,來自實際的8080端口響應(yīng).</p>
<p>${message}</p>
</body>
</html>

test-nginx\src\main\resources\static\index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">


    <title>test nginx</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.css" rel="stylesheet">


</head>

<body>

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index.action">訪問/index.action頁</a>
        </div>


    </div><!-- /.container -->
</nav>

<p>test nginx</p>
<img src="image/1.jpg"/>
<img src="image/2.jpg"/>

<script src="js/jquery-1.10.2.js"></script>


</body>
</html>

參考

本項目實驗 https://github.com/tomlxq/test-nginx

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伴鳖,隨后出現(xiàn)的幾起案子节值,更是在濱河造成了極大的恐慌,老刑警劉巖榜聂,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搞疗,死亡現(xiàn)場離奇詭異,居然都是意外死亡须肆,警方通過查閱死者的電腦和手機匿乃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門桩皿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幢炸,你說我怎么就攤上這事泄隔。” “怎么了宛徊?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵佛嬉,是天一觀的道長。 經(jīng)常有香客問我闸天,道長暖呕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任苞氮,我火速辦了婚禮湾揽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘笼吟。我一直安慰自己钝腺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布赞厕。 她就那樣靜靜地躺著,像睡著了一般定硝。 火紅的嫁衣襯著肌膚如雪皿桑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天蔬啡,我揣著相機與錄音诲侮,去河邊找鬼。 笑死箱蟆,一個胖子當(dāng)著我的面吹牛沟绪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播空猜,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绽慈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辈毯?” 一聲冷哼從身側(cè)響起坝疼,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谆沃,沒想到半個月后钝凶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡唁影,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年耕陷,在試婚紗的時候發(fā)現(xiàn)自己被綠了掂名。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡哟沫,死狀恐怖饺蔑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情南用,我是刑警寧澤膀钠,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站裹虫,受9級特大地震影響肿嘲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筑公,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一雳窟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匣屡,春花似錦封救、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至券躁,卻和暖如春惩坑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背也拜。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工以舒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慢哈。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓蔓钟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卵贱。 傳聞我的和親對象是個殘疾皇子滥沫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容