Luc*_*a D 5 configuration proxy nginx
我对 Nginx 配置有一些问题。我已经搜索了一个问题,但我看到的建议解决方案对我不起作用。
我在 tomcat 服务器上有一些应用程序,在 jboss 服务器上有一些应用程序。我在另一台服务器 Nginx 上配置为反向代理,它工作正常。现在,我要做的是使用域名访问 tomcat 和 jboss 上的应用程序。例如。我在 tomcat 上有应用程序到这个地址: tomcat.domain.com:8080/app1 ;tomcat.domain.com:8080/app2 等等,即使对于 jboss 应用程序.. 使用反向代理我有这个输出:proxy.domain.com/app1 proxy.domain.com/app2 等等,所以我不必须指定既不属于指定服务器的端口号。但我会以这种方式使用子域:app1.domain.com、app2.domain.com 等等。因此,我对 Nginx 的配置,仅用于反向代理的配置是(为了简单起见,我将仅报告有关 tomcat 的行):
upstream tomcat_server {
server tomcat.domain.com:8080;
}
server {
listen 80;
location /app1 {
proxy_pass http://tomcat_server;
proxy_set_header X-Forwarded-Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
对于子域配置,我修改了关于服务器定义的部分,如下所示:
server {
listen 80;
server_name app1.domain.com;
location / {
proxy_pass http://tomcat_server/app1;
proxy_set_header X-Forwarded-Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
正如某些论坛中所建议的那样,但它不起作用。我指定,在管理 DNS app1.domain.com 的服务器上指向 proxy.domain.com 服务器。我看到了日志,但没有。我该怎么办?
谢谢
卢西亚娜
您可能需要检查您的 DNS 设置。
我还使用多个子域,这些子域是我为使用 Web 框架(例如 Python Django 或 Ruby on Rails)的各种应用程序动态创建的。
一个典型的例子是在mydomain.com我可能希望myapp.mydomain.commyapp 是一个在my_server_IP:some_port.
为了实现这样的事情(许多子域在相同或不同的端口上运行),我将决定从 DNS 委托给具有通配符 DNS 记录 的 Web 服务器,请参阅 Wikipedia。顾名思义,此类记录会生成一个捕获所有域,可以使用虚拟主机(域代理等)从 Web 服务器轻松管理该域。
AGoDaddy 的 DNS 管理工具中的通配符记录如下所示:
Host Points To TTL
* YOUR_SERVER_IP 1 Hour
以及一个 Nginx 配置文件,它将所有请求传递app.mydomain.com给otherserver.com:9000/index.html
结果:您在浏览器中输入http://app.mydomain.com内容,Nginx 提供的内容otherserver.com:9000/index.html可以是另一台服务器或应用程序等
server {
listen 80;
server_name app.mydomain.com www.app.mydomain.com;
access_log /var/log/nginx/app_mydomain_com_access.log;
error_log /var/log/nginx/pp_mydomain_com_error.log;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location / {
proxy_pass http://otherserver.com:9000/index.html;
}
}
Run Code Online (Sandbox Code Playgroud)