我看了几个类似的问题,但他们似乎没有任何帮助。我在默认的1点击配置中运行了一个运行Wordpress的vultr.com实例。 Centos6如果重要的话。这是(我希望它保留)在根(www.mysite.com
)中。我想让我的Django应用程序在www.mysite.com/crossfaded/
中运行。我不想要当前服务器的任何停机时间,因此还没有与服务器关联的域名。我试图只使用IP来做到这一点。
Wordpress网站运行正常。
我一直在关注指南here,然后尝试了this one,但当我在浏览器中导航到http://ip.add.re.ss/crossfaded/media/apple.jpg
时,我从nginx获得了404。 Going /crossfaded/media/
给了我一个来自nginx的403,而/crossfaded/invalidpath/
给了我一个由Wordpress提供的404,所以路由发生了一些事情。我做了chmod 777 apple.jpg
,因为这是一个权限问题,但是没有做任何事情。
我有预感我的location
块的语法混乱,但我真的不确定。
wordpress_http.conf
upstream php-handler-http {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80 default_server;
server_name _;
#server_name wordpress.example.com;
root /var/www/html/;
index index.php;
# set max upload size
client_max_body_size 2G;
fastcgi_buffers 64 4K;
access_log /var/log/nginx/wordpress_http_access.log combined;
error_log /var/log/nginx/wordpress_http_error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args ;
}
location ^~ /wp-admin/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd/wpadmin;
location ~* \.(htaccess|htpasswd) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-handler-http;
fastcgi_read_timeout 60s;
}
}
location ~* \.(htaccess|htpasswd) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-handler-http;
fastcgi_read_timeout 60s;
}
# set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
location ~ /crossfaded/static/ {
alias /root/crossfaded/static/;
}
location ~ /crossfaded/media/ {
alias /root/crossfaded/media/ ;
}
}
答案 0 :(得分:0)
有两个问题:
我需要在别名位置使用插入符号(^),所以:
location ^~ /crossfaded/static/ {
alias /root/crossfaded/static/;
}
location ^~ /crossfaded/media/ {
alias /root/crossfaded/media/ ;
}
~/
为/root/
。 Nginx需要r-x
对从/
到相关文件的所有目录的权限。它没有那个。将项目目录移至/home/
。