Nginx 从同一台机器为两个网站提供服务

Nginx 从同一台机器为两个网站提供服务,nginx,server,Nginx,Server,我正在寻找服务器两个网站从同一台机器,也许通过nginx。目前,我有一个运行在nginx后面的内部Flask服务器,所有这些服务器都运行在一个装有Ubuntu18的盒子上 nginx服务器设置如下: server { # listen on port 80 (http) listen 80; server_name _; location / { # redirect any requests to the same URL but on http

我正在寻找服务器两个网站从同一台机器,也许通过nginx。目前,我有一个运行在nginx后面的内部Flask服务器,所有这些服务器都运行在一个装有Ubuntu18的盒子上

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关联的域,因此我通常通过访问例如(不是真正的IP)来访问该框。这个很好用

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

两个问题:

  • 实现这一目标的最佳方式是什么?我正在考虑在不同的端口上为网站提供服务。使用不同的子域不是一个选项,因为我没有将域附加到该框

  • 要实现这一点,正确的nginx设置是什么?我已尝试在端口8001上设置服务器侦听,如下所示:


  • 但这似乎不起作用-转到不返回任何内容(甚至不返回nginx坏网关页面),页面只是超时。

    如果要使用
    https
    则需要使用
    listen 8001 ssl-但如果连接超时,可能中间有一个防火墙,只允许常规端口(80和443)通过。
    
    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;
        }