Header Ads Widget

Ticker

6/recent/ticker-posts

Hướng dẫn cấu hình tạo Virtual Host Apache Proxy đến Tomcat Server

Keyword: How to config virtual host apache proxy connect to port tomcat server 8080
Virtual Host hay còn được gọi là tên miền ảo, thường thì các bạn tạo tên miền ảo khá dễ dàng rồi đúng không nào ? nhưng để tạo 1 tên miền ảo và trỏ đến Port mong muốn bằng Apache thì làm như thế nào ? chắc cũng sẻ rất nhiều bạn đang tìm câu trả lời cho bản thân mình về điều đó, vì vậy hôm nay mình sẻ hướng dẫn các bạn cách tạo 1 tên miền local trỏ đến Port 8080 của Tomcat nhé, đại loại nó sẻ như mô hình phía dưới
Như bạn đã thấy ở trên bình thường khi ta tạo VirtualHost thì chỉ cần tới Apache là đủ, vì nằm trên Port 80 của Apache nhưng do mình muốn tạo VirtualHost đến một Port khác là Port 8080 của Tomcat nên việc cấu hình cần phải có Apache Proxy, để Proxy đến Tomcat, thôi chúng ta sẻ bắt đầu thực hiện như sau, hiện tại mình có 2 server mail Tomcat và Apache
Ok chúng ta bắt đầu thực hiện chỉnh sửa file hosts trong /etc/hosts
vi /etc/hosts
Sau đó chỉnh sửa như hình nhé, ở đây mình đặt tên miền nó là opencms-sutrix.local.com
Sau đó thực hiện tạo file config virtualhost bằng câu lệnh sau
vi /etc/apache2/sites-available/opencms-sutrix.local.com.conf
Với nội dung như sau trong file
<VirtualHost *:80>
        ServerName opencms-sutrix.local.com
        ServerAdmin webmaster@localhost
        ##DocumentRoot /home/java11_user/apache-tomcat-9.0.29/webapps
        ErrorLog ${APACHE_LOG_DIR}/glico_dev_error.log
        CustomLog ${APACHE_LOG_DIR}/glico_dev_access.log combined
        RewriteEngine on
        ProxyRequests Off
        ProxyPreserveHost On
        RewriteCond %{HTTP_USER_AGENT} googlebot [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} AdsBot-Google [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} msnbot [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} AltaVista [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} sosospider [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} crawl [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} Slurp [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} spider [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} bingbot [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} tracker [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} click [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} parser [NC,OR]
        RewriteCond %{HTTP_USER_AGENT} BaiduSpider [NC]

        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Sau đó thực hiện save lại.
Chúng ta thực hiện a2ensite file conf (trong folder /etc/apache2/sites-available) lên và mở các mod proxy lên nữa nào
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
systemctl restart apache2
a2ensite opencms-sutrix.local.com.conf
service apache2 restart
Như vậy là mình đã hướng dẫn cho các bạn xong rồi đấy, các bạn cứ làm theo thứ tự từ trên xuống dưới là được nè, của mình giờ là ngon lành rồi haha
Các bạn cần hiểu thế này, để có thể proxy đến link Ví dụ:
Bạn muốn nó show link:  http://prudential-qa.sapient.sutrix.com/export/system/modules/com.prudential.v2.hk/resources/fonts/icomoon.eot
Nhưng link thật sự của nó là: http://prudential-qa.sapient.sutrix.com/opencms/system/modules/com.prudential.v2.hk/resources/fonts/icomoon.eot
thì bạn thực hiện Proxy như bên dưới
ProxyPass /export/system/modules/com.prudential.v2.hk/resources/fonts/ http://127.0.0.1:8080/opencms/system/modules/com.prudential.v2.hk/resources/fonts/
ProxyPassReverse /export/system/modules/com.prudential.v2.hk/resources/fonts/ http://127.0.0.1:8080/opencms/system/modules/com.prudential.v2.hk/resources/fonts/
Chỉ cần bạn hiểu được cách thức hoạt động của ProxyPass thì bạn có thể tùy biến bất cứ thứ gì bạn muốn cho nó show link thế nào hay ra sao cũng được.
Dưới đây là bản config tham khảo của Opencms mà mình tìm hiểu được để các bạn có thể bổ xung cho config ở phía trên nhé, ở đây mình sẻ có 2 trường hợp
  • Trường hợp 1: opencms.war được để ở thư mục mặc định nghĩa là nằm trong /opt/tomcat7/webapps/opencms.war thì như vậy ta sẻ cấu hình virtual host như sau
<VirtualHost *:80>
        ServerName natita.lutuli.site 
  
        ServerAlias www.natita.lutuli.site
  
        DocumentRoot /opt/tomcat7/webapps/opencms/
        <Directory /opt/tomcat7/webapps/opencms/>
                Options FollowSymlinks
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
        RewriteEngine On
        #Enable Proxy
        ProxyRequests Off
        ProxyPreserveHost On
  
  RewriteRule ^/opencms/(.*)  /$1 [R=301,L]

        ProxyPass               /export/                http://127.0.0.1:8080/opencms/opencms/export/
        ProxyPassReverse        /export/                http://127.0.0.1:8080/opencms/opencms/export/
        ProxyPass               /resources/             http://127.0.0.1:8080/opencms/opencms/resources/
        ProxyPassReverse        /resources/             http://127.0.0.1:8080/opencms/opencms/resources/
#        ProxyPass               /documents/             http://127.0.0.1:8080/export/sites/default/documents/
#        ProxyPassReverse        /documents/             http://127.0.0.1:8080/export/sites/default/documents/
#        ProxyPass               /images/                http://127.0.0.1:8080/export/sites/default/images/
#        ProxyPassReverse        /images/                http://127.0.0.1:8080/export/sites/default/images/
        ProxyPass               /VAADIN/                http://127.0.0.1:8080/opencms/opencms/VAADIN/
        ProxyPassReverse        /VAADIN/                http://127.0.0.1:8080/opencms/opencms/VAADIN/
  ProxyPass               /workplace/                http://127.0.0.1:8080/opencms/opencms/workplace/
        ProxyPassReverse        /workplace/                http://127.0.0.1:8080/opencms/opencms/workplace/
  

        ProxyPass               /                       http://127.0.0.1:8080/opencms/opencms/
        ProxyPassReverse        /                       http://127.0.0.1:8080/opencms/opencms/
  ProxyPass               /opencms               http://127.0.0.1:8080/opencms/opencms
        ProxyPassReverse        /opencms               http://127.0.0.1:8080/opencms/opencms
</VirtualHost>
  • Trường hợp 2: Mình sẻ thay đổi file opencms.war thành ROOT.war sau đó xóa folder ROOT trong đường dẫn /opt/tomcat7/webapps/ROOT và bỏ file ROOT.war vào trong /opt/tomcat7/webapps/
<VirtualHost *:80>
        ServerName opencms.lutuli.site 
  
        ServerAlias www.opencms.lutuli.site
  
        DocumentRoot /opt/tomcat7/webapps/ROOT/
        <Directory /opt/tomcat7/webapps/ROOT/>
                Options FollowSymlinks
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
        RewriteEngine On
        #Enable Proxy
        ProxyRequests Off
        ProxyPreserveHost On
  
  RewriteRule ^/opencms/(.*)  /$1 [R=301,L]

        ProxyPass               /export/                http://127.0.0.1:8080/export/
        ProxyPassReverse        /export/                http://127.0.0.1:8080/export/
        ProxyPass               /resources/             http://127.0.0.1:8080/resources/
        ProxyPassReverse        /resources/             http://127.0.0.1:8080/resources/
#        ProxyPass               /documents/             http://127.0.0.1:8080/export/sites/default/documents/
#        ProxyPassReverse        /documents/             http://127.0.0.1:8080/export/sites/default/documents/
#        ProxyPass               /images/                http://127.0.0.1:8080/export/sites/default/images/
#        ProxyPassReverse        /images/                http://127.0.0.1:8080/export/sites/default/images/
        ProxyPass               /VAADIN/                http://127.0.0.1:8080/VAADIN/
        ProxyPassReverse        /VAADIN/                http://127.0.0.1:8080/VAADIN/
  ProxyPass               /workplace/                http://127.0.0.1:8080/workplace/
        ProxyPassReverse        /workplace/                http://127.0.0.1:8080/workplace/
  

        ProxyPass               /                       http://127.0.0.1:8080/
        ProxyPassReverse        /                       http://127.0.0.1:8080/
  ProxyPass               /opencms               http://127.0.0.1:8080
        ProxyPassReverse        /opencms               http://127.0.0.1:8080
</VirtualHost>
Chúc các bạn thành công và nhớ chú ý cái mình bôi xanh nhé, vì những cái đó quang trọng và cần thay đổi đấy hehe
Nguồn: itblognote.com

Post a Comment

0 Comments