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/hostsSau đó 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.confVớ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 restartNhư 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
0 Comments
Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.