从同一台计算机上服务两个网站

时间:2020-10-28 10:55:52

标签: nginx server

我正在寻找通过同一台计算机(可能是通过nginx)来服务两个网站的服务器。目前,我在nginx后面运行一个内部Flask服务器,所有这些服务器都在Ubuntu 18的盒子上运行。

nginx服务器设置如下:

server {
    # listen on port 80 (http)
    listen 80;
    server_name _;
    location / {
        # redirect any requests to the same URL but on https
        return 301 https://$host$request_uri;
    }
}
server {
    # listen on port 443 (https)
    listen 443 ssl;
    server_name _;

    # location of the self-signed SSL certificate
    ssl_certificate /home/ubuntu/certs/cert.pem;
    ssl_certificate_key /home/ubuntu/certs/key.pem;

    access_log /var/log/access.log;
    error_log /var/log/error.log;

    location / {
        # forward application requests to the internal server
        proxy_pass http://127.0.0.1:8000;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

我没有与此IP相关联的域,因此我通常通过例如访问https://123.456.789.123(不是真实IP)。效果很好。

我想启动另一个Flask服务器,在同一台机器上运行一个完全独立的应用程序。

两个问题:

  1. 实现此目标的最佳方法是什么?我当时正在考虑在不同的端口上提供网站服务。不能选择使用其他子域,因为我没有在盒子上附加域。

  2. 要实现此目的,正确的nginx设置是什么?我尝试设置一个监听端口8001的服务器,如下所示:

server {
    listen 8001;
    server_name _;

    # location of the self-signed SSL certificate
    ssl_certificate /home/ubuntu/certs/cert.pem;
    ssl_certificate_key /home/ubuntu/certs/key.pem;

    access_log /var/log/access1.log;
    error_log /var/log/error1.log;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

但是这似乎不起作用-转到https://123.456.789.123:8001不会返回任何内容(甚至不返回nginx Bad Gateway页面),该页面只是超时。

0 个答案:

没有答案
相关问题