WisPlanner Windows生產(chǎn)環(huán)境 Nginx反向代理

本文介紹在Windows環(huán)境下搭建Wisplanner服務(wù)的Nginx反向代理
第一步. 下載Nginx并安裝盲赊,略

第二步. 基本配置
首先,我們給出以下的簡稱惊窖,用于提供RS服務(wù)的刽宪,我們稱為wisp-rs, 用于提供UI渲染的,我們稱為wisp-ui
wisp-rs和wisp-ui都可以進(jìn)行集群界酒,但本章節(jié)不做介紹圣拄。
1)對于客戶并發(fā)數(shù)量較少的環(huán)境,我們通常毁欣,wisp-rs和wisp-ui是一臺主機(jī)庇谆。對于這種情況,最好將wisp-ui連接wisp-rs的地址改為127.0.0.1凭疮。
2)wisp-rs是推薦在內(nèi)網(wǎng)的系統(tǒng)饭耳,我們基本沒考慮過使用https
3)在沒有使用nginx反向代理時(shí),wisp-ui提供外網(wǎng)服務(wù)哭尝,我們通常要考慮https
4)如果使用了nginx進(jìn)行反向代理哥攘,wisp-ui不提供外網(wǎng)服務(wù),應(yīng)當(dāng)采用http,而nginx提供https服務(wù)

本文介紹使用nginx進(jìn)行反向代理逝淹,那么首先耕姊,應(yīng)該讓wisp-ui提供http服務(wù)并且屏蔽https服務(wù),然后給出一個(gè)新的端口號栅葡,不要使用80端口

wisp-ui的配置如下

-vm 
/home/wisp/jdk1.8.0_212/jre/bin/java

-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.551.v20171108-1834

-console
-vmargs
-Dosgi.requiredJavaVersion=1.8
-XX:+UseG1GC
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=512M
-Xms512m
-Xmx512m
-server

-Dosgi.bundles=com.bizvisionsoft.annotations@start,com.bizvisionsoft.bruicommons@3:start,com.bizvisionsoft.bruiengine@start,com.bizvisionsoft.mongocodex@start,com.bizvisionsoft.pms@start,com.bizvisionsoft.serviceconsumer@start,com.bizvisionsoft.service@start,com.bizvisionsoft.tmt@start,com.bizvisionsoft.widgets@start,com.eclipsesource.jaxrs.consumer@start,com.eclipsesource.jaxrs.jersey-all@start,com.eclipsesource.jaxrs.provider.multipart@start,com.eclipsesource.jaxrs.provider.security@start,com.eclipsesource.jaxrs.provider.sse@start,com.eclipsesource.jaxrs.provider.swagger@start,com.eclipsesource.jaxrs.publisher@start,com.eclipsesource.jaxrs.swagger-all@start,com.google.gson@start,mongo-java-driver@start,com.ibm.icu.base@start,commons-codec@start,commons-collections4@start,commons-compress@start,commons-lang3@start,commons-math3@start,guava@start,asm@start,javassist@start,javax.servlet-api@start,javax.servlet@start,javax.xml@start,jsoup@start,logback-classic@start,logback-core@start,org.apache.batik@start,org.apache.commons.fileupload@start,org.apache.commons.io@start,org.apache.felix.gogo.command@start,org.apache.felix.gogo.runtime@start,org.apache.felix.gogo.shell@start,org.apache.felix.scr@start,org.apache.poi@start,org.eclipse.core.commands@start,org.eclipse.core.contenttype@start,org.eclipse.core.jobs@start,org.eclipse.core.runtime@start,org.eclipse.equinox.app@start,org.eclipse.equinox.cm@start,org.eclipse.equinox.common@2:start,org.eclipse.equinox.console@start,org.eclipse.equinox.http.jetty@start,org.eclipse.equinox.http.registry@start,org.eclipse.equinox.http.servlet@start,org.eclipse.equinox.preferences@start,org.eclipse.equinox.registry@start,org.eclipse.jetty.continuation@start,org.eclipse.jetty.http@start,org.eclipse.jetty.io@start,org.eclipse.jetty.security@start,org.eclipse.jetty.server@start,org.eclipse.jetty.servlet@start,org.eclipse.jetty.util@start,org.eclipse.osgi.services@start,org.eclipse.osgi.util@start,org.eclipse.osgi@1:start,org.eclipse.rap.draw2d.compatibility@start,org.eclipse.rap.draw2d@start,org.eclipse.rap.filedialog@start,org.eclipse.rap.fileupload@start,org.eclipse.rap.jface@start,org.eclipse.rap.nebula.jface.gridviewer@start,org.eclipse.rap.nebula.widgets.grid@start,org.eclipse.rap.rwt.osgi@start,org.eclipse.rap.rwt@start,org.htmlparser@start,net.sf.mpxj@start,slf4j-api@start

-Declipse.ignoreApp=true
-Dosgi.noShutdown=true
-Dosgi.configuration.area=osgi-ui
-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info
-Dcom.bizvisionsoft.service.url=http://127.0.0.1:9158/services
#-Dorg.eclipse.equinox.http.jetty.https.enabled=true
-Dcom.bizvisionsoft.bruiengine.EnableTraceModelFile=true
-Dorg.osgi.service.http.port=8080
-Dcom.bizvisionsoft.bruiengine.ClientConfigRootPath=/home/wisp/server/client
-Dcom.bizvisionsoft.sqldb.datasource=/home/wisp/server/wisp6/configuration/extdb.properties
-Dcom.bizvisionsoft.service.Lang=/home/wisp/server/lang
-Dlogback.configurationFile=/home/wisp/server/wisp6/configuration/log-brui.xml
#-Dorg.eclipse.equinox.http.jetty.ssl.keystore=/home/wisp/server/wisp6/configuration/wisplanner.com.jks
#-Dorg.eclipse.equinox.http.jetty.ssl.keypassword=0l8ahIs9
#-Dorg.eclipse.equinox.http.jetty.ssl.password=0l8ahIs9
-Dcom.bizvisionsoft.service.MongoDBConnector=/home/wisp/server/wisp6/configuration/db.properties

請注意:
1)這個(gè)是wisp-ui.ini文件茉兰,對應(yīng)在windows下的可執(zhí)行文件為wisp-ui.exe文件
2)這個(gè)ini文件里面已經(jīng)包含了config.ini的內(nèi)容(config.ini和啟動器.ini里面的參數(shù)是可以互置的。)
3)上文已經(jīng)包含了所有的config.ini的內(nèi)容欣簇,因此规脸,不需要單獨(dú)配置config.ini了
4)對于Java的啟動參數(shù),請注意學(xué)習(xí)并且根據(jù)實(shí)際情況進(jìn)行配置
5)上文的參數(shù)
-Dcom.bizvisionsoft.service.url=http://127.0.0.1:9158/services
是訪問本機(jī)的wisp-rs服務(wù)熊咽,如果不是同一臺機(jī)器莫鸭,請更換地址
上文中已經(jīng)注釋了使用https的配置
并且加入了使用http的配置

現(xiàn)在我們應(yīng)該可以啟動wisp-ui并且在8080端口進(jìn)行訪問了

第三步,配置nginx

首先修改nginx.conf文件横殴,我們打開gzip的功能被因,其他參數(shù)的配置請自行學(xué)習(xí)。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

然后衫仑,在conf.d目錄下創(chuàng)建一個(gè)擴(kuò)展的配置文件
default.conf

server {
    listen 443 ssl;
    server_name  www.wisplanner.com;
    ssl on;
    ssl_certificate ssl/wisplanner.com.pem;
    ssl_certificate_key ssl/wisplanner.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;   
    
    location ~ /rwt-resources/generated/ {
    proxy_pass http://127.0.0.1:8080;
    }

    location ~ /rwt-resources/themes/images/ {
    proxy_pass http://127.0.0.1:8080;
    }

    location ~ .*\.(svg|js|css|html|png|ico|gif|jpg|bpm)$
    {
       root /home/wisp/server/http-res;
       expires 7d;
    }

    location / {
    index index.html index.htm;
    proxy_redirect off;
    proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
    proxy_max_temp_file_size 128m; 
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    }

} 

server {
    listen 80;
    server_name  139.9.191.90;
    
    location ~ /rwt-resources/generated/ {
    proxy_pass http://127.0.0.1:8080;
    }

    location ~ /rwt-resources/themes/images/ {
    proxy_pass http://127.0.0.1:8080;
    }

    location ~ .*\.(svg|js|css|html|png|ico|gif|jpg|bmp)$
    {
       root /home/wisp/server/http-res;
       expires 7d;
    }

    location / {
    index index.html index.htm;
    proxy_redirect off;
    proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
    proxy_max_temp_file_size 128m; 
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    }
   

} 

上面的配置梨与,同時(shí)支持了80端口和443端口。生產(chǎn)環(huán)境只需要443端口即可文狱。
server_name粥鞋,需要域名,請客戶申請對應(yīng)的SSL證書
ssl_certificate是證書存放的目錄瞄崇,對于pem和key文件呻粹,SSL證書的提供方一般都會給出。

接下來是重點(diǎn):

第四步苏研,配置靜態(tài)資源訪問目錄
nginx的優(yōu)勢在于兩點(diǎn)尚猿,一點(diǎn)是負(fù)載均衡,另一點(diǎn)就是高性能的靜態(tài)資源訪問楣富。
對于負(fù)載均衡,請參考本系列中我們在docker中配置nginx的方法伴榔。本文只介紹配置靜態(tài)資源纹蝴。
對于wisp-ui有三類資源,一類是純靜態(tài)的踪少,一類是RWT動態(tài)配置的塘安。

對于rwt動態(tài)的資源,我們需要直接代理援奢。

    location ~ /rwt-resources/generated/ {
    proxy_pass http://127.0.0.1:8080;
    }
    location ~ /rwt-resources/themes/images/ {
    proxy_pass http://127.0.0.1:8080;
    }

其他的資源我們放置在nginx服務(wù)器的本機(jī)目錄

    location ~ .*\.(svg|js|css|html|png|ico|gif|jpg|bmp)$
    {
       root /home/wisp/server/http-res;
       expires 7d;
    }

上文的配置將靜態(tài)文件指向了目錄 root /home/wisp/server/http-res;
這個(gè)目錄是linux下的目錄兼犯,windows下請自行配置。

除此以外的,統(tǒng)統(tǒng)代理

  location / {
    index index.html index.htm;
    proxy_redirect off;
    proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
    proxy_max_temp_file_size 128m; 
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    }

以上就已經(jīng)給出了一個(gè)基本的反向代理的配置切黔。
更多的有關(guān)nginx的細(xì)節(jié)請自行學(xué)習(xí)砸脊。
百度網(wǎng)盤下載6.2的靜態(tài)資源文件,請了解其目錄結(jié)構(gòu)纬霞,并且在版本更新時(shí)及時(shí)更新靜態(tài)資源

鏈接:https://pan.baidu.com/s/1gX0FDVfVhv8_dPiNpoE4pQ
提取碼:poxg

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凌埂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诗芜,更是在濱河造成了極大的恐慌瞳抓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏恐,死亡現(xiàn)場離奇詭異孩哑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)翠桦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門横蜒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秤掌,你說我怎么就攤上這事愁铺。” “怎么了闻鉴?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵茵乱,是天一觀的道長。 經(jīng)常有香客問我孟岛,道長瓶竭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任渠羞,我火速辦了婚禮斤贰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘次询。我一直安慰自己荧恍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布屯吊。 她就那樣靜靜地躺著送巡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盒卸。 梳的紋絲不亂的頭發(fā)上骗爆,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音蔽介,去河邊找鬼摘投。 笑死煮寡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的犀呼。 我是一名探鬼主播幸撕,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼圆凰!你這毒婦竟也來了杈帐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤专钉,失蹤者是張志新(化名)和其女友劉穎挑童,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跃须,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡站叼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了菇民。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尽楔。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖第练,靈堂內(nèi)的尸體忽然破棺而出阔馋,到底是詐尸還是另有隱情,我是刑警寧澤娇掏,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布呕寝,位于F島的核電站,受9級特大地震影響婴梧,放射性物質(zhì)發(fā)生泄漏下梢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一塞蹭、第九天 我趴在偏房一處隱蔽的房頂上張望孽江。 院中可真熱鬧,春花似錦番电、人聲如沸岗屏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽担汤。三九已至,卻和暖如春洼冻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隅很。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工撞牢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留率碾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓屋彪,卻偏偏與公主長得像所宰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子畜挥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355