我有一个Nginx运行,端口3000上的Node.js。 location / { root /path/to/my/site; index index.html index.htm; try_files $uri $uri/ @node; } location @node { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:3000; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 这完美的作品,当url不是一个文件时获取节点内容。 (所以这加载socket.io/socket.io.js罚款)。 现在我想要所有页面redirect到我的index.html在根。 所以当用户刷新//域/ with / extra / path; 我想运送根//domain/index.html。 我需要重写这个,但是这会破坏我检查节点文件。 所以我需要的东西只redirectGET /(url)/我的根/index.html,而不是GET文件。
这里是我的网站的完整configuration: server { server_name back.mysite.com; access_log /home/django/mysite/deploy/logs/nginx_acc.log; error_log /home/django/mysite/deploy/logs/nginx_err.log; location / { uwsgi_pass unix:///tmp/uwsgi.sock; include uwsgi_params; } location /media/sites/ { alias /web/mysite.com/sites/; } location ~ ^/(static|media)/ { root /home/django/mysite/mysite; expires max; log_not_found off; } location /sites/ { root /web/mysite.com; } } 现在我可以打开第一个链接,但不能打开以下的第二个 http://back.mysite.com/sites/files/somefile.jpg http://back.mysite.com/media/sites/files/somefile.jpg #<—can't open but need to 请告诉我,我做错了什么。
我安装了aspell \ pspell,如果是的话 > aspell dump dicts ar cs de de_AT de_CH de_DE en en-variant_0 en-variant_1 en-variant_2 en-w_accents en-wo_accents en_CA en_CA-variant_0 en_CA-variant_1 en_CA-w_accents en_CA-wo_accents en_GB en_GB-ise en_GB-ise-w_accents en_GB-ise-wo_accents en_GB-ize en_GB-ize-w_accents en_GB-ize-wo_accents en_GB-variant_0 en_GB-variant_1 en_GB-w_accents en_GB-wo_accents en_US en_US-variant_0 en_US-variant_1 en_US-w_accents en_US-wo_accents es fr-40 fr-60 fr fr-80 fr-lrg fr-med fr-sml fr_CH-40 fr_CH-60 fr_CH fr_CH-80 fr_CH-lrg fr_CH-med fr_CH-sml […]
由于某些未知的原因, http://utro.ee/nonsenseredirect到http://utro.ee/.ee 当应用程序运行没有nginx,一切都很好 – 它redirect到http://utro.ee 你能给我一些提示,为什么会这样呢? 来自日志的debugging信息: 2014/01/16 10:47:19 [debug] 31895#0: *2427 http cleanup add: 00000000024374F0 2014/01/16 10:47:19 [debug] 31895#0: *2427 get rr peer, try: 1 2014/01/16 10:47:19 [debug] 31895#0: *2427 socket 42 2014/01/16 10:47:19 [debug] 31895#0: *2427 epoll add connection: fd:42 ev:80000005 2014/01/16 10:47:19 [debug] 31895#0: *2427 connect to unix:///tmp/utro.0.sock, fd:42 #2457 2014/01/16 10:47:19 […]
并非所有连接到我们的网页工作。 许多人只能连接10次后才连接。页面保持加载,然后显示连接超时错误。 我已经尝试了很多,但没有任何帮助。 Nginxconfiguration: user www www; worker_processes 4; error_log /home/wwwlogs/nginx_error.log warn; pid /usr/local/nginx/logs/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 8192; events { use epoll; worker_connections 4096; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 64k; large_client_header_buffers 4 64k; client_max_body_size 10m; client_body_buffer_size […]
我正在使用NGINX作为我的HTTP服务器从WordPress博客迁移到Jekyll博客,我不希望因为某些URL不能正常工作而中断互联网。 我到了一个我真的需要求助的地步。 原来的WordPress博客URL是这样的: example.com/series/ example.com/series/some-stuff/ 我想通过删除文件扩展名(.html)来模仿这个url,如果有人将WordPressurl存储在他的书签中,则回复一个非404网页。 没有任何重写的Jekyll默认URL是这样的: example.com/series/ –> This one is correct by default. example.com/series/some-stuff.html –> Not ok. 正如你可以看到第一个URL,系列部分已经确定,因为它是index.html页面,Jekyll在这种情况下隐藏了de文件名(如预期的那样),但是当你访问同一部分(/系列)中的任何其他页面获取扩展名的完整文件名。 好吧,我开始在重写工作中删除扩展名,并能够响应相同的WordPress的url,并在这里: rewrite ^/series/(.*)\.html*$ /series/$1 permanent; rewrite ^/series/(.*)/$ /series/$1 permanent; example.com/series/redirect到example.com/series/index –> It's working ok but I don't like that now it's showing me the file name (index). 其他人正在按我期望的方式工作,并正在响应旧的WordPress URls。 example.com/some-stuff.htmlredirect到example.com/series/some-stuff –> Correct! example.com/series/some-stuff/redirect到example.com/series/some-stuff –> Correct! […]
我有一个工作nginx重写的位置,但在一个特定的请求的情况下,我想重写到一个不同的位置。 location /api { if (!-e $request_filename){ rewrite "^/api/.{2}\.zip" /api/general.zip last; break; rewrite ^/api/(.*)$ /api/router.php?rest_data=$1 last; break; } } 所以如果有人要求/api/uk.zip,那么它下载的很好,但/api/fr.zip不存在,所以它应该redirect到/api/general.zip 我已经尝试了2个位置块,我得到了一个重复的位置错误,我试着用2个if语句,但是第二个被忽略。 如果请求是针对其他事情的,比如/ api / events,则应该转发到路由器页面。
我试图阅读所有在这个论坛上提出的build议和提示,但我无法find一个方法来使这个规则的工作。 我希望如果一个特定的url被请求,nginx永久redirect到一个子域名: if ($host = 'www.domain.com/zh/') redirect www.cn.domain.com$requested_uri 它的语法不正确,但它只给出了主要想法,我只想要/zh/跳转到子域,其他像/en/ , /jp/等。我不希望nginx做任何redirect。 非常感谢,所有帮助将非常感激。
在我的\主页\应用程序\视图说谎我的index.html,如果我启动本地主机加载acan。 现在的问题是,我不知道如何链接到CSS文件,因为他们躺在:首页\应用程序\资产\样式表 而我的Php则位于:homepage \ testApp index /index.scala.html; root homepage\app\views; location / { } 上面的代码工作链接到索引,但它不能加载CSS,javalibrarys或其他任何东西。 任何想法如何我可以链接到他们? PS我是一个初学者nginx
我很难从UWSGI运行一个模块。 这是我的部署代码的一部分: # ENVIRONMENT /usr/bin/pip install virtualenv mkdir -p /srv/www/test /usr/local/bin/virtualenv /srv/www/test/venv source /srv/www/test/venv/bin/activate /srv/www/test/venv/bin/pip install –force-reinstall -e [email protected]:xyz/project.git#egg=project 这是模块根目录中的run.py代码 from project import app def main(): """docstring for main""" app.run(debug=True) if __name__ == '__main__': main() 这是我试图用来运行它的命令: / usr / local / bin / uwsgi –virtualenv $ ENV –module项目–chdir $ APP – 主 这是运行此命令后得到的消息: uWSGI以root身份运行,可以使用–uid / […]