日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Apache转发到Tomcat

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache转发到Tomcat 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#vi /etc/httpd/conf/httpd.conf

添加下面配置

NameVirtualHost *:80

<VirtualHost *:80>
ProxyPreserveHost On
ServerName www.域名.com
ProxyPass / http://www.域名.com:8080/system/
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>

?

?

?

作者:沈小然

編寫日期:2014年7月6日

1????????? 實現原理與工作流程

原理:

客戶瀏覽器使用https協議訪問 ApacheServer 。ApacheServer將請求轉發到后端的Tomcat。ApacheServer與后端的Tomcat通信使用http協議。所以Tomcat不用開啟https協議。把ApacheServer配置支持https協議就可以了。證書也在ApacheServer中配置。自始自終Tomcat都不需要修改任何地方。同理換成JBoss也一樣,JBoss不需要修改。

更進一步,讓客戶瀏覽器訪問http協議時,自動將http協議轉成https協議就更加人性化了。這個技術也是在ApacheServer中配置完成。

工作流程:

1.?????? 搭建ApacheServer服務器,支持https協議;(基礎工作)

2.?????? 搭建Tomcat服務器,配置基本的訪問頁面;(基礎工作,整個功能不需要配置Tomcat

3.?????? 配置ApacheServer服務器,實現在https協議基礎上將URL請求轉發給Tomcat服務器;(關鍵)

4.?????? 配置ApacheServer,實現訪問http協議自動轉成https協議。(關鍵)

2????????? 搭建ApacheServer服務器

2.1?????? 使用yum 安裝apache

Apache版本

# httpd -v

Server version: Apache/2.2.15 (Unix)

Server built:?? Aug 13 2013 17:29:28

?

2.2?????? 檢測Apache是否支持加密https協議

ll /etc/httpd/modules/

查看目錄中是否有mod_ssl模塊,若沒有使用yum install mod_ssl安裝,安裝以后變化:

l? 增加了/etc/httpd/modules/mod_ssl.so文件

l? 增加了/etc/httpd/conf.d/ssl.conf配置文件

2.3?????? 實現URl轉發技術需要的模塊

我們需要使用Apache的ProxyPass來轉發URL后端,需要下面兩個模塊

mod_proxy.so

mod_proxy_http.so

我們還需要實現客戶端瀏覽器訪問http自動轉成https協議,需要下面的模塊

mod_rewrite.so

?

2.4?????? 安裝openssl提供ssl加密協議

使用yum 安裝openssl

# yum install openssl

openssl version

OpenSSL 1.0.1e-fips 11 Feb 2013

注意:我們測試環境,不需要創建CA證書,生產環境中需要上傳CA證書,并在ssl.conf文件中指定證書路徑。

3????????? 搭建Tomcat服務器

# tar zxf apache-tomcat-8.0.9.tar.gz

# mv apache-tomcat-8.0.9 /opt/tomcat

開啟tomcat服務,測試使用tomcat默認頁面就可以

# bin/startup.sh

訪問192.168.1.10:8080出現tomcat默認頁面,如下圖:

?

Tomcat服務器搭建成功

1????????? 配置Apache在http協議基礎上使用ProxyPass轉發URL到Tomcat(主要測試基本的ProxyPass的轉發功能)

1)編輯/etc/httpd/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

#具備以上2行是說明apache具備將URL轉發給Tomcat的能力

# 測試頁面add by sxr

ProxyPass /examples http://192.168.1.10:8080/examples/

ProxyPassReverse /examples http://192.168.1.10:8080/examples/

測試,訪問192.168.1.10/examples后,自動跳轉到了后端Tomcat的192.168.1.10:8080/examples頁面。

Tomcat提供的192.168.1.10:8080/examples頁面

1????????? 配置Apache在https協議中實現ProxyPass轉發URL到Tomcat

實現原理:客戶瀏覽器訪問Apache的htts協議,在Aapache的ssl.conf配置文件中配置ProxyPass轉發,將請求轉發給后端的Tomcat服務器,這樣就實現了在https協議的基礎上Apache將URL轉發給Tomcat

注意:此時,客戶端瀏覽器必須使用https://192.168.1.10/docs訪問才能實現URL轉發。

1)編輯/etc/httpd/conf/httpd.conf

Include conf.d/*.conf

#加載其他的配置文件,主要是為了使用ssl.conf

保存。

2)編輯 /etc/httpd/conf.d/ssl.conf,支持https協議

LoadModule ssl_module modules/mod_ssl.so

Listen 443

##

## SSL Virtual Host Context

##

<VirtualHost _default_:443>

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

??? SSLOptions +StdEnvVars

</Files>

<Directory "/var/www/cgi-bin">

??? SSLOptions +StdEnvVars

</Directory>

SetEnvIf User-Agent ".*MSIE.*" \

???????? nokeepalive ssl-unclean-shutdown \

???????? downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

????????? "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

# https協議中實現ProxyPass轉發URL,實際就是在ssl.conf中添加ProxyPass語句

ProxyPass /test http://192.168.1.10:8080/examples

ProxyPassReverse /test http://192.168.1.10:8080/examples

ProxyPass /docs http://192.168.1.10:8080/docs??? 注意,末尾沒有/符號,http://192.168.1.10:8080/docs/是錯誤的

ProxyPassReverse /docs http://192.168.1.10:8080/docs

注意:轉發到Tomcat的URL中末尾不能加/符號。如果寫成ProxyPassReverse /docs http://192.168.1.10:8080/docs/ ,訪問的結果如下圖:

寫成ProxyPassReverse /docs http://192.168.1.10:8080/docs,訪問的結果如下圖:

?

2????????? 配置Apache,實現http自動轉換成https協議

上面,我們已經完成了在https協議上實現將URL轉發給Tomcat。接下來,我們只要配置Apache,實現http自動轉成https協議,就能夠讓客戶端瀏覽器輸入普通地址自動跳轉到加密的https的頁面,并且頁面還是后端Tomcat服務提供的功能。

編輯/etc/httpd/conf/httpd.conf配置文件,下面語句實現將整個Apache站點都自動轉成https協議

# add by sxr

RewriteEngine on

RewriteCond %{SERVER_PORT} 80

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

RewriteLog /var/log/httpd/rewrite.log

RewriteLogLevel 10

保存,重啟Apache服務生效

# /etc/init.d/httpd restart

Stopping httpd:??????????????????????????????????????????? [? OK? ]

Starting httpd:??????????????????????????????????????????? [? OK? ]

來自:http://my.oschina.net/lionel45/blog/287735

轉載于:https://www.cnblogs.com/dule/p/5849941.html

總結

以上是生活随笔為你收集整理的Apache转发到Tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。