我一直在处理将一个站点从Apache迁移到Nginx的过程,我快要失去理智了。虚拟主机不想提供静态资源(css、js等),我似乎不知道为什么。服务器块看起来像这样:
server {
listen 443 default_server ssl;
server_name dev.myproject.mydomain.net;
root /opt/dev/myproject;
index index.php;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/certs/server.pem;
access_log /var/log/nginx/vh.project.dev.access.log;
error_log /var/log/nginx/vh.project.dev.error.log;
location ~ ^/alias_name/(.*) {
alias /opt/dev/myproject/www/$1;
location ~ ^/alias_name/(.+\.php)$ {
alias /opt/dev/myprojectp/www/$1;
include /etc/nginx/conf/php;
}
}
location ~ \.php$ {
include /etc/nginx/conf/php;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
我错过了什么?我知道这是因为我对Nginx缺乏经验,但任何建议都将不胜感激。
谢谢
更新
这似乎与我以前遇到麻烦的化名有关。如果我将我的文档根指向别名位置(/0025/dev/myproject ectp/www
),并尝试呈现没有别名的静态内容,它会呈现良好的效果。一旦我在网址中输入别名...没那么多。
好吧,我可能已经通过暴力试验和错误找到了我自己的答案。此虚拟主机服务器块似乎可以正确地提供PHP和静态内容:
server {
listen 443 default_server ssl;
server_name dev.myproject.mydomain.net;
root /opt/dev/project-root;
index index.php;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/certs/server.pem;
access_log /var/log/nginx/myproject.dev.access.log;
error_log /var/log/nginx/myproject.dev.error.log;
location ~ ^/alias_name/(.+\.php)$ {
alias /opt/dev/project-root/www/$1;
include /etc/nginx/conf/php;
}
location ~ ^/alias_name/(.*) {
alias /opt/dev/project-root/www/$1;
}
location ~ \.php$ {
include /etc/nginx/conf/php;
}
}
我不知道我是否会遇到问题,我也不能说我完全理解其中的区别,但是简单地删除嵌套的位置
块似乎已经做到了。
摘自:http://kbeezie.com/view/nginx-configuration-examples/
# This block will catch static file requests, such as images, css, js
# The ?: prefix is a 'non-capturing' mark, meaning we do not require
# the pattern to be captured into $1 which should help improve performance
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
# Some basic cache-control for static files to be sent to the browser
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
我在Tomcat前面有Nginx,但proxy_pass静态文件不提供。这是我的配置: 如果我去https://example.com我得到的Tomcat应用程序没有CSS,没有图片。 从错误中恢复。日志
问题内容: 这是我的项目文件夹 这是我index.js中的静态文件配置 这是我的index.html 这是我的nginx配置 但是我在所有脚本上都得到404。另一个奇怪的是,这些文件上的mime-type设置为 我在这里做错了什么? 我有一个项目,该项目具有相同的项目结构,并且具有相同的配置,但它适用于此项目,在这种情况下不起作用。 问题答案: 您无需配置Nginx 和 Express即可提供静态
问题内容: 我正在为Django使用apache + mod_wsgi。 并且所有css / js / images都通过提供。 出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery / css不会为他们加载,因此页面看上去很混乱。 我的html文件使用这样的代码- 我的nginx配置是这样的 有一个目录,其中有相应的&目录。 奇怪的是,当我访问它们时页面显示正常。 我已经清除了
问题内容: 我正在使用,我的django应用的结构如下 的是 在我尝试使用它为: 但是它没有加载并给出错误 我跑去收集所有静态文件。 为什么要加载CSS文件?是否缺少任何配置? 请提出建议。 问题答案: 根据文档正确的方式来加载静态文件是 这会工作
问题内容: 我有一个具有以下结构的Web应用程序: 我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。 这是我的nginx配置文件部分: 缺少什么吗? 问题答案: 将此添加到你的nginx配置 用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容都将存储在中。
我在数字海洋上有一个水滴,我正在使用它来主持一个网站和该网站的API。 null