centos下apache伺服器以及Tomcat的配置
環境我用的是Centos7,apache2.4
首先,執行yum install httpd命令下載安裝apache
裝好之後進入/etc/httpd/conf目錄,修改httpd.conf文件(修改之間最好先備份)
我是把原先配置文件中暫時用不上的都給去掉了,最終httpd.conf文件的內容如下:
#apache的精簡配置文件
IncludeOptional conf.d/*.conf
Include conf.modules.d/*.conf
Include conf/virtualhost.conf
#Include conf/mod_jk.conf
#配置文件的根目錄,即載入外部的配置文件會自動加上根目錄前綴
ServerRoot "/etc/httpd"
User apache
Group apache
#首頁相關的配置
<IfModule dir_module>
DirectoryIndex index.html index.jpg
</IfModule>
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
</IfModule>
</IfModule>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
#轉發需要引入的模塊
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#重定向的模塊
LoadModule rewrite_module modules/mod_rewrite.so
虛擬主機的配置文件virtualhost.conf如下:
#配置虛擬主機需要指定Directory和VirtualHost,兩者是成對存在的
#Directory也可以直接配置一個頂級目錄,不管配置幾個,一定要有,不然會出錯
#下面配置的虛擬主機的埠都要在這裡聲明
Listen 80
Listen 8081
Listen 8082
Listen 8083
# 80埠用來配置轉發伺服器
# Directory只需要配置一個父級目錄(同時包含幾個子目錄)就行了
<Directory "/var/www">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/html"
# ServerName centos
ErrorLog "/var/www/html/logs/error_log"
CustomLog "/var/www/html/logs/access_log" common
ErrorDocument 404 /error/404_error.html
#請求轉發,跳轉到tomcat伺服器
ProxyPass /JavaWebTest http://centos:8080/JavaWebTest/
ProxyPassReverse /JavaWebTest http://centos:8080/JavaWebTest/
</VirtualHost>
<VirtualHost *:8081>
DocumentRoot "/var/www/test1"
# ServerName centos
ErrorLog "/var/www/test1/logs/error_log"
CustomLog "/var/www/test1/logs/access_log" common
ErrorDocument 404 /error/404_error.html
</VirtualHost>
<VirtualHost *:8082>
DocumentRoot "/var/www/test2"
# ServerName centos
ErrorLog "/var/www/test2/logs/error_log"
CustomLog "/var/www/test2/logs/access_log" common
ErrorDocument 404 /error/404_error.html
# RewriteEngine 用於開啟或停用rewrite功能。
RewriteEngine On
RewriteRule ^(.*)/images/(.+)$ /$2 [R=302,L]
</VirtualHost>
<VirtualHost *:8083>
DocumentRoot "/var/www/test3"
# ServerName centos
ErrorLog "/var/www/test3/logs/error_log"
CustomLog "/var/www/test3/logs/access_log" common
ErrorDocument 404 /error/404_error.html
</VirtualHost>
#配置與tomcat目前知道的有兩種方法
#第一種:使用mod_jk.so模塊
#第二種:使用自帶的ProxyPass進行請求轉發,需要引入兩個自帶的模塊
#配置一個webapps就行了
#<Directory "/root/tomcat/webapps">
# Options Indexes FollowSymLinks Includes ExecCGI
# AllowOverride All
# Require all granted
#</Directory>
#<VirtualHost 192.168.241.180:8888>
# DocumentRoot "/root/tomcat/webapps/JavaWebTest"
# JkMount /* worker1
#</VirtualHost>
mod_jk.conf的配置文件如下:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile /var/www/tomcat_log/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
#執行所有的請求
JkMount /* worker1
#JkMount /*/servlet/* worker1
#JkMount /*.jsp worker1
#JkMount /*.html worker1
#JkMount /application/* worker1
#JkMount /*.do worker1
workers.properties的配置文件如下:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
#多個Tomcat需要這樣配置
#========tomcat1========
#worker.tomcat1.port=11009 #埠號與tomcat一致
#worker.tomcat1.host=localhost
#worker.tomcat1.type=ajp13
#worker.tomcat1.lbfactor = 1
#========tomcat2========
#worker.tomcat2.port=12009 #埠號與tomcat一致
#worker.tomcat2.host=localhost
#worker.tomcat2.type=ajp13
#worker.tomcat2.lbfactor = 1
#========controller=負載均衡控制器名稱=======
#worker.controller.type=lb
#worker.controller.balanced_workers=tomcat1,tomcat2 #多個tomcat以","隔開
#worker.controller.sticky_session=false
#worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
#同時還需要在tomcat的server.xml中這樣配置
#<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" /> 11009對應上面的埠
#<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> route對應上面的名稱
#<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 這個只配置一個就行了
#單個Tomcat的配置(一般使用這個就行了)
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
下面簡單說明一下:
Tomcat、JDK這些環境自己搞定,比較簡單,我就不多說了。
還有重定向我感覺沒什麼用,實際用的話一般都是通過代理轉發到Tomcat伺服器(或者類似於Tomcat的伺服器),想了解重定向的可以自己研究一下,水比較深。。
代理轉發還是很有用的,可以使用apache自帶的模塊(帶有proxy的兩個),自己手動引入,然後在虛擬主機中添加兩行配置就行了。前面的那個/***是拼接在埠後的,控制是否執行轉發,匹配就執行轉發操作;後面的是轉發的url路徑。如果轉發到Tomcat伺服器,後面那個就寫成Tomcat伺服器的路徑就行了。
DocumentRoot是項目的根目錄,ErrorDocument是根據http錯誤的狀態碼,使其在指定錯誤頁面顯示
別的比較簡單,我就不廢話了。
對了,與Tomcat伺服器進行關聯還有一種方法是去Tomcat官網下載插件tomcat-connetors,然後將壓縮包複製到linux環境中進行解壓
接著執行yum install gcc gcc-c++
由於是用yum命令安裝的apache,所以還需要執行yum install apr-util-devel httpd-devel
接著執行whereis apxs查看顯示的目錄,我的是/usr/bin/apxs
接著進入解壓後插件的目錄下的native目錄,執行./configure --with-apxs=/usr/bin/apxs
接著執行make編譯,然後會在native下的apache-2.0目錄中生成mod_jk.so文件,將這個文件複製到/etc/httpd/modules目錄下
配置就在上面,配置文件全部在/etc/httpd/conf目錄下
就這吧,有不懂的可以自己百度或者問我,apache伺服器坑很深,我也只是初步能用而已。別的等用上再研究吧,再慢慢爬坑。
TAG:程序員小新人學習 |