正如标题所述,我正在尝试使用 nginx 从托管在同一服务器上的另一个域提供静态内容。
这是我的服务器配置:
server {
listen 80;
server_name static-sexparken.nu;
rewrite ^ http://static-sexparken.nu$uri permanent;
}
# the server directive is nginx's virtual host directive.
server {
# port to listen on. Can also be set to an IP:PORT
listen 80;
# Set the charset
charset utf-8;
# Set the max size for file uploads to 10Mb
client_max_body_size 50M;
# sets the domain[s] that this vhost server requests for
server_name static-sexparken.nu;
# doc root
root /var/www/static-sexparken.nu/public;
# vhost specific access log
#access_log /var/log/nginx_access.log main;
# Set image format types to expire in a very long time
location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
access_log off;
expires max;
}
# Set css and js to expire in a very long time
location ~* ^.+\.(css|js)$ {
access_log off;
expires max;
}
# Catchall for everything else
location / {
root /var/www/sexparken.nu/public;
access_log off;
index index.html index.shtml;
expires 1d;
#try_files $uri $uri/404.html;
if (-f $request_filename) {
break;
}
}
location ~* ^/(pkg|rpms)/ {
autoindex on;
}
error_page 500 502 503 504 /500.html;
error_page 404 /404.html;
}
当我尝试直接访问域上的图像时会发生什么?我得到以下信息:
如果您禁用或拒绝接受 cookie,有时可能会出现此问题。
Firefox 中显示为错误。当然,这些链接在网站上也是正确的,但我什么也没得到。
这里可能存在什么问题?任何帮助表示感谢。
答案1
启动 nginx 时,您应该会收到重复的服务器名称警告。您的两个服务器块都匹配相同的主机名,并且使用第一个,因为它是第一个。您告诉它重定向到相同的主机名,因此它会永远循环。也许您的意思是在第一个 server_name 中添加一个 www。