问题描述
所以我试图在 python-flask app
上部署我的 AWS
。我已经租了服务器并设置了一切。我使用 this 来完成在 AWS 服务器上部署应用程序的工作。直到第 6 步,一切都很完美,但正如第 6 步中所说,我需要在 default
的 sites-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
。