如果正在热连接,我想提供一个原始文件,但如果有人在浏览器中访问该文件,请重新编写url。 我几次看到这个盗链的例子: location /pictures/ { valid_referers none blocked mywebsite.com *.mywebsite.com; if ($invalid_referer) { return 403; } } 但是,我怎样才能引用有效的查阅者? 我试图提供原始文件,如果它被链接到另一个页面(热链接)。 如果有人在浏览器中查看该文件,我想添加一些HTML(即重写到另一个URL); $invalid_referer之外还有哪些variables可用? 我试过了: if( !$invalid_referer){ return 403; #allow hot-linking only; } 在文档中可以看到没有提及其他可用的variables。 http://nginx.org/en/docs/http/ngx_http_referer_module.html
试图让一个nginx安装程序运行,但每次我访问的地址,我被给予“找不到”,而不是我期待的laravel站点。 服务器工作正常之前,我添加虚拟主机,所以我猜这里有一些错误的configuration。 任何帮助发现错误,将不胜感激。 请注意,网站只能通过IP访问,这就是为什么我的填充IP为123.123.123.123 server_name 。 等/ nginx的/ nginx.conf: listen 80; user nginx; worker_processes 4; worker_rlimit_nofile 200000; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 4000; use epoll; multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; […]
我有一个nginx作为代理的节点web应用程序。 这是该网站的server块: server { listen 80; server_name subdomain.example.org; location / { # Offline handling error_page https://example.org/502 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:4567; proxy_redirect off; # Socket.io Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } 如果Web应用程序发生故障,那么error_page指令会将用户发送到站点外,但URL最终会更改。 是否有可能发送用户到该网站,但在浏览器中保持相同的url?
我正在使用linode nodebalancer(loadbalancer)来设置我的nginx / php5-fpm服务器。 这平衡器被动检查。 这些被动检查,检查请求的状态代码。 如果5XX状态码过多,节点(vps)将由负载平衡器标记为脱机状态 节点平衡器将我的服务器以随机方式离线。 当联系linode支持他们得出结论,没有500错误,但连接丢失(或超时)。 我在我的nginx日志中找不到任何东西。 有没有什么办法可以debugging这个问题,看看哪些连接被nginx放弃了? 编辑我可以看到来自相同的IP /用户代理大量的408请求。 他们进来散装..这是可疑的? 你将如何处理这种情况? 来自access.log的快照 69.30.*.* – – [22/Apr/2014:19:28:29 +0200] "POST /error/register-image-error/ HTTP/1.1" 408 0 "http://www.mysite.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 69.30.*.* – – [22/Apr/2014:19:28:29 +0200] "POST /error/register-image-error/ HTTP/1.1" 408 0 "http://www.mysite.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 69.30.*.* […]
我希望http://blog.domain.com/指向http://www.domain.com/blog 只是一个通知, 不要redirect到该位置,而只是指向它。 另外/博客不是一个文件夹。 例如它可能是blog.php 所以当我导航到http://blog.domain.com时 ,网站显示的内容来自http://www.domain.com/blog 我到目前为止所尝试的是: server{ listen 80; server_name blog.domain.com; rewrite ^/blog(.*) http://blog.domain.com/$1 permanent; } 结果是nginx返回404找不到错误。
当我尝试将file upload到基于node.js的Web应用程序时,出现以下错误: 2014/05/20 04:30:20 [error] 31070#0: *5 upstream prematurely closed connection while reading response header from upstream, client: … [clipped] 我在这里使用一个前端代理: upstream app_mywebsite { server 127.0.0.1:3000; } server { listen 0.0.0.0:80; server_name {{ MY IP}} mywebsite; access_log /var/log/nginx/mywebsite.log; # pass the request to the node.js server with the correct headers and much more can be […]
我有一个2核心,2 GB的RAM VPS与我的项目从数字海洋的专用IP地址。 我使用nginx作为networking服务器,MySQL作为数据库服务器并绑定为DNS服务器。 我的项目是一个免费的托pipe平台,用于教育目的。 我将教PHP和MySQL给我附近的学生,我希望他们在PHP和MySQL的支持下,在自己的子域上进行练习。 例如,如果我的主域名是example.com ,我也会为我的域名设置通配符SSL,学生子域名应该像student1.example.com 。 学生将能够使用我用PHP编写的安装脚本自动select子域来激活他们的networking空间。 如何在不使用任何Webpipe理控制面板的情况下实现我想要的function? 学生select的子域如何解决我的主域? 学生可以在这样的设置上使用自己的TLD域名吗? 你对这种设置有什么build议吗?
我的站点中的configuration文件中有以下两个服务器块可用: server { listen 80; server_name www.mydomain.be; root /usr/share/nginx/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name sub.mydomain.be; root /usr/share/nginx/sub; index index.html index.htm; location / { try_files $uri $uri/ =404; } } 我还为我的服务器的IP地址创build了www.domain.be和sub.domain.be的Alogging。 然而,当我尝试重新加载我的nginxconfiguration与服务nginx重新加载失败。 当我删除第二个服务器块,它按预期重新加载。 我知道这个主题很受欢迎,这里有很多这样的[nginx] [子域]问题,但是他们都没有明确地讨论以下三件事情是如何结合在一起的: 虚拟主机或服务器块在nginx(est。server_name匹配) Alogging对nginx进程请求的影响 需要将主机添加到/ etc / hosts 现在我有一个印象,就是对这个更大的图片缺乏了解,而不是对nginxconfiguration的具体了解使得我无法做这个工作。 更新: 追查问题 […]
我们使用nginx将任何http请求redirect到https连接,所以虽然用户使得http连接nginx会redirect到https连接。 在这里nginx有任何限制,只能处理每秒'n'重新方向。 因为我们的应用程序可以被其他系统访问,并且他们总是有意地发出http请求。 所以nginx必须将所有http请求redirect到https,但是它一次不能处理很多请求。 但是,如果我们发出https请求,则它不需要任何redirect就可以处理每秒多次的请求。 以下是我们的configuration server { listen 6000; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name someDomain.com; rewrite ^ https://$server_name$request_uri? ; #root /usr/share/nginx/www; index index.html index.htm; }
我有2个Nginx实例,一个在80上侦听,并有一个proxy_pass https://second_nginx; 第二个实例被configuration为使用自签名证书在443上进行监听,但也有SSL客户端validation。 我想在它们之间创build一个可信的连接,并将客户机证书/密钥“注入”到该代理通行证中,以便第一个实例的任何内容都不知道。 那可能吗 ? 我需要一个自定义模块吗? 编辑:我发现stunnel可能是一个合适的解决scheme之间添加该层,这是一个很好的解决scheme?