nginx 安装路径中缺少“sites-available”和“default”

问题描述

所以我试图在 python-flask app 上部署我的 AWS。我已经租了服务器并设置了一切。我使用 this 来完成在 AWS 服务器上部署应用程序的工作。直到第 6 步,一切都很完美,但正如第 6 步中所说,我需要在 defaultsites-available 文件夹内的 Nginx directory 文件添加一些配置,但在我的情况下我没有没有任何 sites-available 文件夹,我使用的是 Amazon Linux AMI。谁能告诉我在哪里添加步骤 6 中提到的那些配置或如何创建该文件。我什至尝试重新安装 Nginx 但问题没有解决,不存在 sites-available 文件夹。

解决方法

下次试试用ubuntu linux,个人觉得好用。

所以 sites-available 文件夹在 /etc/nginx/ 中。你可以这样做:

sudo vi /etc/nginx/sites-available/default,如果需要密码,请输入 root 用户密码。

然后输入以下代码:

server {
    listen       80;
    listen      [::]:80;
    server_name  localhost;
    client_max_body_size 10M;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        # root   html;
        # index  index.html;
        proxy_pass      http://127.0.0.1:5000;
        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;
        proxy_set_header    X-Forwarded-Proto   $scheme;
    }

然后:wq

如果您不在 5000 上运行 Flask,请记住更改 PORT。

然后做ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled

然后做sudo vi /etc/nginx/nginx.conf

检查 include /etc/nginx/sites-enabled/*; 是否在 http{...} 内且不被推荐

然后:q退出

如果您的 nginx 正在运行,则执行 sudo nginx -s reload,如果它没有运行,则执行 sudo systemctl start nginx

然后打开 http://yourWebsite


更多细节让你了解nginx:

这不是必须的

        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;

您可以将 default 更改为您想要的任何其他名称

文件夹 sites-available 用于服务器上的不同站点

文件夹sites-enabled用于存放sites-available中文件的快捷方式

sites-available 中的文件将通过 include /etc/nginx/sites-enabled/*; 导入到 nginx.conf

,

sites-available 可能根本不存在,因为它通常被 conf.d 中的 /etc/nginx 目录替换。两者都做同样的工作 - 提供一个目录,配置文件包含在主配置文件 (/etc/nginx/nginx.conf) 中。如果您选中 nginx.conf,您可能会发现它包含哪个目录中的文件(并添加更多位置,如果您愿意):

grep -E 'include.+[*]' /etc/nginx/nginx.conf
  include conf.d/*.conf; # relative to /etc/nginx

在上面的示例中,include 语句针对 /etc/nginx/conf.d 中名称以 .conf 结尾的所有文件。在这种情况下,您可以将配置文件放在 /etc/nginx/conf.d 中并将其命名为 anything.conf

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...