服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如何根据域名在相同IP地址的Nginx服务器之间路由请求?

我正在运行安装了Nginx的Debian服务器以及OpenResty。 我有一个域名,该域名的一个子域名,未来将有多个域名指向其IP地址与Alogging。 我希望每个域或子域的OpenResty服务器运行在不同的端口上,Nginx服务器根据域名在服务器之间路由请求。 所以,现在我有: 指向IP的domain1.com和sub.domain1.com 运行在端口80上的Nginx和路由请求(我在下面解释的configuration更改) domain1.com服务于端口8000, sub.domain1服务于端口8001 我想要: Nginx会让用户看到他们正在访问sub.domain1.com或domain1.com 。 没有domain1.com:8000或sub.domain1.com:8001 将来,当我有domain2.com指向的IP,以及运行在8002端口的服务器,它也出现在用户为domain2.com而不是domain2.com:8002 ,依此类推 我曾尝试使用proxy_pass , proxy_set_header , proxy_redirect ,以各种configuration使用Googlesearchbuild议。 我设法一次有一个proxy_pass工作,但是显示端口给用户。 我试图以这种方式设置的全部原因是,它似乎并没有在多个端口上运行给用户。 另外,我正在使用SSL,并希望HTTP请求redirect到HTTPS。 我意识到,而试图找出这一点,我需要更改代理服务器端口443的SSL请求(要在默认端口上运行)。 这是我得到它与子域的工作: Nginx的configuration( /etc/nginx/nginx.conf )是默认的,但有以下例外: 删除了虚拟主机包含指令: #include /etc/nginx/conf.d/*.conf; #include /etc/nginx/sites-enabled/*; 在http { }块中添加domain1.com的证书: ssl_certificate /path/to/public.pem; ssl_certificate_key /path/to/private.pem; 为我的代理定义了以下内容: server { listen 443 ssl; ssl on; server_name dev.domain1.com; location / { proxy_pass https://sub.domain1.com:8001; […]