我正在将 django 应用程序部署到 digitalocean,但在 nginx 中我的 ip 地址不起作用sudo vim /etc/nginx/sites-available/lok
。我将其添加到我的 nginx 中,如下所示
upstream app_server {
server unix:/home/urban/urban.new/run/gunicorn.sock
fail_timeout=0;
}
server {
listen 80;
# add here the ip address of your server
# or a domain pointing to that ip (like example.com or www.example.com)
server_name 139.59.36.32;
keepalive_timeout 5;
client_max_body_size 4G;
access_log /home/urban/urban.new/logs/nginx-access.log;
error_log /home/urban/urban.new/logs/nginx-error.log;
location /static/ {
alias /home/urban/lok/templates/style/static/;
}
# checks for static file, if not found proxy to app
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For . $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
}
但是我的 IP 地址不起作用。请帮我找出问题所在。
答案1
您的 NGINX vhost 配置似乎没问题,但您必须更改一些参数配置:
另外,您还必须在 Vhost 中更正以下行:
server_name YOURDOMAIN
如果你有域名,则将其作为占位符 localhost
使用 nginx 监听特定 IP:
listen 139.59.36.32:80 default_server;
下一个更正就是您必须复制/etc/nginx/sites-available/lok
到/etc/nginx/sites-enabled/
或创建一个符号链接然后重新加载 nginx:
# ln -s /etc/nginx/sites-available/lok /etc/nginx/sites-enabled
# service nginx reload
背景:默认情况下,nginx 会加载存储在 sites-enabled/* 下的 conf 文件(如果您不更改 nginx.conf)
另外,您必须查看默认配置是否存在(默认安装时) ls /etc/nginx/conf.d/default
如果默认配置存在,请将其移动到另一个位置,以便您的 vhost 配置可以控制 IP 上的每个请求。