Nginx快捷配置Tomcat虛擬主機
QQ:溜酒酒吧酒吧吾散
blog:blog.csdn.net/fbysss
宣告:本文由fbysss原創,轉載請註明出處
典型場景:
Tomcat的webapps目錄中,有兩個應用:app1、app2,如果沒有nginx,我們的訪問路徑為:
http://www.domainname.com:8080/app1
http://www.domainname.com:8080/app2
埠號暴露給使用者很不好看也不安全。修改Tomcat配置檔案的做法,也可以,但感覺麻煩一些,在這裡並不推薦。讓使用者感覺不到Tomcat的存在,並讓Tomcat伺服器安全的藏在Nginx後面,是我們的目的。
我們希望使用者通過以下地址來訪問:
http://app1.domainname.com
http://app2.domainname.com
比如我們在配置Maven私服Nexus的時候就如此,其預設的路徑是http://localhost:8081/nexus,我們希望通過nexus.domainname.com來訪問。解決辦法:
首先,域名解析,這一步不用在這裡說了。如果只是內部實驗,將app1.domainname.com、app2.domainname.com配置在客戶端hosts檔案中即可。然後,開始修改nginx.conf
如果不考慮叢集,使用proxy_pass 目的地址即可轉發。
於是,我們自然想到,在server節點中應該有如下配置(下面就以nexus為例,如果是多個應用,配置多個server即可):
server { listen 80; server_name nexus.domainname.com; location /{ index index.html index.htm index.jsp; proxy_pass http://xx.xx.xx.xx:8081/nexus; } }
問題1:瀏覽器(chrome)告訴我們,此網頁包含重定向迴圈,此時位址列顯示的地址是http://nexus.domainname.com//通過查詢相關資料,在路徑proxy_pass這句話中,nexus後面加一個斜槓/,就可以正常轉向了。
問題2:訪問應用的時候,發現遇到使用者認證的時候,自然返回到登入頁了。這是啥子情況?此時,如果是一般的tomcat應用,位址列上,後面會跟上,jsessionId=xxxxxx,而且每次訪問都不同。
分析:我們可以猜想,session失效了。
解決:原來,這裡存在一個cookie路徑的配置問題。原理可參考文章:http://030710314.iteye.com/blog/2095819增加一行proxy_cookie_path /nexus /;即可。
server {
listen 80;
server_name nexus.domainname.com;
location /{
index index.html index.htm index.jsp;
proxy_pass http://xx.xx.xx.xx:8081/nexus/;
proxy_cookie_path /nexus /;
}
}
這種配法,位址列中的地址,也很優雅。
順便提及另外一種做法:
server {
listen 80;
server_name nexus.domainname.com;
location /{
index index.html index.htm index.jsp;
proxy_pass http://xx.xx.xx.xx:8081;
rewrite ^/$ /nexus last;
}
}
這種配法,原理很簡單,就是僅僅幫你做了一步,訪問站點時,自動轉發路徑到nexus,省得輸入。其他該怎樣怎樣。所以也不用管cookie的事情。
不過缺點就是,位址列上顯示的地址不好看,還是帶子目錄的。
所以,對於第一種配法:
proxy_pass http://xx.xx.xx.xx:8081/nexus/;
proxy_cookie_path /nexus /;
還有一種寫法可以達到同樣效果:
proxy_pass http://xx.xx.xx.xx:8081;
rewrite /(.*)$ /nexus/$1 break;
proxy_cookie_path /nexus /;
問題3:
解決了埠和子目錄的問題之後,新的問題可能存在。
比如,有些地方,我們在Java程式碼裡面將contextPath寫死了。用於拼接url。String ctx = request.getContextPath();//這裡取出來的肯定還是帶子目錄的。因為其由應用伺服器決定,與nginx配置無關。
修改Java程式碼顯然不是好的方法。
rewrite可以幫助我們解決問題。
增加一句:
rewrite /nexus(.*)$ /$1 permanent;
即可——注意如果用last的話,位址列不會更新。
當然。如果為了避免其他路徑裡面也有nexus,可以將其放在location ~/nexus裡面。或者有更嚴格的正則表示式。
PS:
1.修改了配置檔案,別忘了使用nginx -s reload過載配置檔案。
2.這個例子使用nexus,只是簡單示意,如果是在配置私服上有問題,可參考:
http://books.sonatype.com/nexus-book/reference/install-sect-proxy.html
要注意BASE_URL的配置,要配置為全路徑,不帶nexus,還要將Force Base URL打鉤——nexus的靜態資源的根路徑應該會通過這個來讀取。出現404無法載入某個資源的問題。
3.如果proxy_cookie_path /nexus / 出現問題,嘗試proxy_cookie_path /nexus/ /
相關推薦
Nginx快捷配置Tomcat虛擬主機
作者:fbysss QQ:溜酒酒吧酒吧吾散 blog:blog.csdn.net/fbysss 宣告:本文由fbysss原創,轉載請註明出處典型場景: Tomcat的webapps目錄中,有兩個應用:app1、app2,如果沒有nginx,我們的訪問路徑為: http://
nginx常用配置系列-虛擬主機
server com 文件 主機 -o 書寫 lena 準備 類型 本來準備詳盡的出一份nginx配置講解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虛擬主機配置 2. HTTPS配置 3. 靜態資源處理 4. 反向代理 ================
16.4 配置Tomcat監聽80端口 16.5/16.6/16.7 配置Tomcat虛擬主機 16.8 Tomcat日誌
16.4 配置tomcat監聽80端口 16.5/16.6/16.7 配置tomcat虛擬主機 16.8 tomcat日誌16.4 配置Tomcat監聽80端口16.5/16.6/16.7 配置Tomcat虛擬主機16.8 Tomcat日誌擴展邱李的tomcat文檔 https://www.linuser
配置Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌
tomcat服務配置Tomcat監聽80端口1、[root@centos7 package]# vim /usr/local/tomcat/conf/server.xml <Connector port="80" protocol="HTTP/1.1" connection
Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌
inpu 數據庫 網站 connector example handle length 創建 ssl 配置Tomcat監聽80端口 1.配置Tomcat服務的訪問端口 Tomcat默認啟動的端口是8080,如果你想修改為80,則需要修改server.xml文件。 [ro
配置Tomcat監聽80端口、 配置Tomcat虛擬主機、 Tomcat日誌
瀏覽器 目錄的作用 虛擬主機 bin protoc 相同 其中 日誌文件 true 配置Tomcat監聽80端口 Tomcat監聽的是8080端口,也可以自定義為80
配置Tomcat監聽80端口, 配置Tomcat虛擬主機,Tomcat日誌
tomcat配置Tomcat監聽80端口 編輯配置文件vim /usr/local/tomcat/conf/server.xml在裏面找到8080<Connector port="8080" protocol="HTTP/1.1"connectionTimeout
配置Tomcat監聽80端口 配置Tomcat虛擬主機 Tomcat日誌
ffffff system32 term www apache manager pac drive init.d 一、配置Tomcat監聽80端口#vim /usr/local/tomcat/conf/server.xml //修改tomcat配置文件<
16.4 配置Tomcat監聽80端口 16.5/16.6/16.7 配置Tomcat虛擬主機 16
技術分享 主機 tomcat日誌 9.png tom ges text 分享圖片 虛擬主機 16.4 配置Tomcat監聽80端口 16.5/16.6/16.7 配置Tomcat虛擬主機 16.8 Tomcat日誌16.4 配置Tomcat監聽80端口 16.5/16
配置Tomcat虛擬主機
12月13日任務 16.4 配置Tomcat監聽80埠 16.5/16.6/16.7 配置Tomcat虛擬主機 16.8 Tomcat日誌 配置tomcat監聽80埠 預設tomcat監聽的是8080埠,如果想直接輸入ip就訪問到網頁,就需要進行如下操作: 修改配置檔案
配置Tomcat虛擬主機-2
ofo http .cn href eba release p12 ins 瀏覽器 docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了。其中appBase和docBase可以一樣。在這一
Tomcat介紹、安裝jdk 、安裝Tomcat、配置Tomcat監聽80埠、配置Tomcat虛擬主機、Tomcat日誌
一、Tomcat介紹 Tomcat是Apache軟體基金會(Apache Software Foundation)的Jakarta專案中的一個核心專案,由Apache、Sun和其他一些公司及個人共同開發而成。 Tomcat伺服器是一個免費的開放原始碼的Web應用
nginx的配置、虛擬主機、負載均衡和反向代理--03
第3篇主要講 URL路由重寫 和 讀寫分離 nginx中的 location 正則模組 nginx中的URL重寫怎麼做。url重寫模組,主要是在location模組面來實現,我們一點一點的看。 首先看下location 正則匹配的使用。 還記得之前是
nginx的配置、虛擬主機、負載均衡和反向代理--02
基於域名的虛擬主機 假設我們在本地開發有3個專案,分別在hosts裡對映到本地的127.0.0.1上: 127.0.0.1 www.iyangyi.com iyangyi.com 127.0.0.1 api.iyangyi.com 127.0.0.1 a
nginx基於域名的虛擬主機配置實戰
linux背景: 在www虛擬主機站點基礎上新增一個bbs虛擬主機站點。1 備份配置文件[[email protected]/* */ conf]# pwd /application/nginx/conf [[email protected]/* */ conf]#
配置Tomcat虛擬目錄和主機,通過主機名來訪問項目
進行 通過 port 工程 步驟 .net ber ava itl 目的:在學習javaweb的過程中,經常會用瀏覽器來訪問項目,但是每次訪問時都需要輸入一大串路徑,非常麻煩。這裏教大家配置tomcat虛擬主機,訪問項目時,直接輸入虛擬主機名字即可! 步驟: 1. 設置默認
nginx基於域名的虛擬主機配置
egrep end 空格 agen 通過 cti 本機 網站 重啟nginx 與apache服務器類似,nginx也有基於域名,IP及端口的虛擬主機配置,在實際工作場景中,基於域名的虛擬主機配置較常見。nginx服務的主要配置文件nginx.conf[root@lnmp01
Nginx系列--03HTTP段基本配置及虛擬主機
HTTP段基本配置 Nginx虛擬主機配置 HTTP協議配置格式 http { ... ...:各server的公共配置 server { ... }:每個server用於定義一個虛擬主機; server { ...
Tomcat虛擬主機配置(基於域名/端口)
Tomcat什麽是虛擬主機? 虛擬主機就是把一臺真正的主機分成許多“虛擬”的主機,每一臺虛擬主機都具有獨立的域名和IP地址,具有完整的Internet服務器功能。虛擬主機之間完全獨立,在外界看來,每一臺虛擬主機和一臺獨立的主機完全一樣。 配置文件位置: tomcat/conf/server.xml文件2.to
nginx配置及其虛擬主機的搭建
添加 eve server sbin work pen processes onf host 1:基本配置 [dev@HC-25-44-18 nginx]$ ./sbin/nginx -V nginx version: nginx/ built by gcc 4.4.7 2