可以用非java语言开发的web服务器和servlet容器组合来做web开发吗?
PHP中文网
PHP中文网 2017-04-18 09:51:12
0
4
445

【问题背景】服务端程序可以简单地看做web服务器(用于处理静态资源)和引擎容器两大部分。在java web开发中,常用的容器Tomcat、Jetty(当然,两者都是Web服务器+引擎容器)中的web服务器部分都是基于java语言开发。通常,web服务器用于处理静态资源,遇到动态资源请求时则把请求转发出去给Servlet容器。
【问题描述】
可以用非java语言开发的web服务器和servlet容器组合来做web开发吗?如果原则上是可以的话,现实企业用这样的“组合方式”多吗?麻烦举例。

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(4)
Peter_Zhu

Évidemment, il n'existe actuellement aucun servlet conteneur de ce type. Bien sûr, si je dois être pointilleux, je pense qu'il est possible de l'implémenter.
Mais quelle entreprise ferait une telle chose ? Cela prend du temps et demande beaucoup de travail.

伊谢尔伦

Il faut dire que la plupart des serveurs web supportent actuellement le protocole CGI pour appeler des programmes de traitement dynamique.
Et Servlet lui-même n'est pas un programme qui supporte CGI, donc pour que d'autres programmes web appellent Servlet, il doit passer par le protocole CGI. processus de transmission.
Les bibliothèques d'extension telles qu'Apache et Nginx prennent en charge la conversion CGI en Servlet.

Peter_Zhu

L'affiche souhaite réaliser une séparation dynamique et statique comme Nginx + PHP-FPM :
Nginx gère toutes les ressources statiques, et PHP-FPM ne gère que les requêtes PHP
Java est également possible, la configuration est la suivante. :

upstream appserver {
 ip_hash;
 server 127.0.0.1:8080;
 server 127.0.0.1:8081;
}
server{
 location ~ \.(jsp|do)$ {
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header Host $host;
  proxy_pass http://appserver;
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_504;
 }
}

Un Tomcat écoute le port 8080, l'autre Tomcat écoute le port 8081, Nginx écoute le port 80,
Les requêtes dynamiques telles que jsp ou do sont envoyées par Nginx proxy_pass à un cluster en amont, et deux serveurs d'applications Tomcat sont configuré dans le cluster,
Nginx et les deux Tomcats pointent vers le même répertoire racine du site Web.

Vous pouvez également utiliser directement location / {...} pour inverser le proxy proxy_passer tout le contenu aux deux Tomcats sur le backend pour répondre aux exigences REST
Faites ensuite correspondre les fichiers statiques tels que css/js/jpg/png et. les remettre à Nginx Processing peut également atteindre l'objectif de séparation du dynamique et du statique.

PHPzhong

IIS exécute Java ? Je suis tellement inactif
Héberger une application Java dans IIS à l'aide de HttpPlatformHandler

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!