出于某种原因,我的CSS,JS和Font-Awesome静态资产被识别并正常使用,但是我的img静态文件在Nginx Docker容器日志中显示了404错误。 当我在本地构build这些容器时,一切正常,但是一旦我在Digital Ocean上构build,img文件就开始向Nginx抛出404错误。 我一直在工作几天没有运气,任何帮助将非常感激。 这里是我的Nginx设置: server { listen 80; server_name 104.236.29.80; access_log /dev/stdout; error_log /dev/stdout info; location /static/ { alias /usr/src/app/personal/static/; } location / { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 这里是我的Nginx构build的Dockerfile: FROM tutum/nginx RUN rm /etc/nginx/sites-enabled/default ADD sites-enabled/ /etc/nginx/sites-enabled 我的Docker-compose文件看起来有点像这样: web: restart: always build: ./web expose: […]
在Google Container Engine上设置Kubernetes入口时,您可以select入口类( gce或nginx )。 我意识到,GCE课程在Google云平台上提供负载平衡器,每个平台的费用约为20美元/月。 经过一番研究之后,我发现Google的负载均衡器比使用NGINX入口级别更好,至less在达到非常大的规模之前,我找不到任何普遍的理由。 事实上,GCE类似乎并不支持: 通过ingress.kubernetes.io/auth-url外部authentication 基本authentication NGINX入口内置的其他一些小function 我不知道使用GCE类与NGINX类入口有什么好处?
我不会说我是一个服务器pipe理的新手,但显然我错过了这里的一些关键时刻… 问题:从某个特定设备(运行Safari的Apple iPad(版本8.4.1(12H321)型号:MD515HC / A)访问网站时,连接到服务器的连接丢失(如通过服务器上的防火墙locking) 一段时间的ipad不活动后,连接回来。 如果在locking之前有一个到服务器的主动SSH连接 – 连接保持正常,但是无法build立到服务器的新连接(就好像所有的端口都closures了一样)。 Iptables的input/输出策略设置为ACCEPT。 Amazon EC2已将我的IP地址设置为允许所有stream量。 # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-sshd (0 references) target prot opt source destination 常规的日志文件显示绝对没有相关信息。 # apparmor_status […]
背景: 我想为使用Nginx托pipe的网站部分实现HTTPauthentication,但允许用户使用他们用于samba / shelllogin的相同密码,类似于IIS上的Windows身份validation。 题: ngx_http_auth_pam_module似乎做我想做的,但是在自述文件中的这一行让我害怕: 您需要让Web服务器用户读取/ etc / shadow文件 我知道影子保存的是密码哈希而不是密码,但是由于这些哈希和关联的用户名可能会暴露给networking,所以这仍然看起来像一个暴露给www数据组的“坏东西”。 这是一个有效的恐惧,还是我只是偏执? 在旁边: 随着一点挖掘,似乎PAMvalidation应该是可行的,而不能访问阴影,所以我不知道为什么插件是这样实现的… …
嗨,我想要一个重写规则,但我不想redirect它,请求一个URL,但从另一个URL加载不同的内容。 所以,我认为最后和重写指令中的标志是一个很好的解决scheme。 但是,它总是redirect,我search这个问题,他们声明,如果新的URL不是来自nginx实例,它将redirect。 这里有几行我的configuration: … rewrite ^(/\w+/$)(.+\.php) /$2 last; proxy_pass upstream_name:80; … 我问的是我如何使用重写,但不redirect? 更新:例如,我想创build一个新的像/ link / asd,但是在我的web应用程序中没有/ link / asd。 我希望我的/链接/ asd链接从/ asd链接加载资源。 那么,我认为重写最后的旗帜是一个很好的解决scheme。 如果我的理解是错误的,请纠正我的解释。 谢谢
我有一个在VPS#1上运行的nginx(1.12.1)服务器,我在VPS#2上运行了Graylog。 所有sys + nginx日志都发送到Graylog。 为了让nginx工作,我必须安装Graylog Marketplace中的nginx内容包 。 我不得不将以下内容添加到nginx.conf中: log_format graylog2_format '$remote_addr – $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" <msec=$msec|connection=$connection|connection_requests=$connection_requests|millis=$request_time>'; access_log syslog:server={redacted}:12301 graylog2_format; error_log syslog:server={redacted}:12302; 我遵循指示,一切工作就像它应该。 我收到来自nginx的所有日志。 我现在想做的事情也是沿着Nginx收到的头部X-API-KEY发送给Graylog。 我已经尝试在nginx.conf中添加"$http_x_api_key"到log_format ,如下所示: log_format graylog2_format '$remote_addr – $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_x_api_key" "$http_referer" "$http_user_agent" "$http_x_forwarded_for" <msec=$msec|connection=$connection|connection_requests=$connection_requests|millis=$request_time>'; 但是这不会导致nginx日志被发送到Graylog。 我还有什么可以尝试?
Favicons变得越来越不守规矩。 为了迎合所有的浏览器/平台,我正在使用这个优秀的服务 。 我得到的是以下文件: android-chrome-192×192.png favicon-16×16.png mstile-150×150.png android-chrome-512×512.png favicon-32×32.png safari-pinned-tab.svg apple-touch-icon.png favicon.ico browserconfig.xml manifest.json 推荐的path是web根目录,因为一些浏览器不支持自定义path。 我真的不想在我的网站上有这样的混乱。 所以,我正在寻找一个locationconfiguration,把他们都放在他们的专用目录,让客户认为他们在网站的根。 我已经看到这样的完全匹配规则: location = /favicon.ico { root /var/www/path/to/favicons; } 但是,仅仅为这些文件准确匹配的地点并不是一个很好的解决scheme。 我还可以做些什么?
我有一个使用nginx和gunicorn在Ubuntu 16.04 EC2实例上部署的Django应用程序。 不幸的是,在我的公共IP成功部署之后,使用公共IP更新我的Alogging在我的域中产生了404 Bad Request错误 – 即使等了很长时间以确保DNS更改传播。 通过公共IP访问应用程序继续工作。 我确实联系了我的名字服务器主机,以确认我是否正确地设置了我的Alogging设置:他们说DNS更改成功了,但是没有帮助,因为它似乎是AWS的一个问题。 是否有一个特定的原因,为什么在我的Alogging中使用我的公共IP不能正常工作,并没有指向我的应用程序? 非常感谢任何能够帮助我成功将我的域名指向已部署的django项目的人员。 目前,通过公网IP访问应用程序仍然正常工作,Alogging似乎更新,但任何尝试加载域(不是直接IP),都会出现400错误请求错误。
我有一台服务器使用nginx成功托pipe了一些域。 每个域都有一个单独的nginxconfiguration文件。 一个域,我们称之为example.com是默认的服务器 它有一个像这样的configuration文件: # config file for example.com # #redirects all www to NON-www # server { listen 80; server_name www.example.com; return 301 $scheme://example.com$request_uri; } server { listen 80 default_server; server_name example.com; charset utf-8; root /blah/example.com/public/www; 这很好 – 直到我为同一个域的文件夹和子域的各种“pipe理redirect”添加第二个configuration文件。 我这样做是因为这个域名相当古老,并且在为这些域名购买域名之前,在子目录中有一大堆应用程序和网站。 在一些用户有旧书签的机会,我们要确保那些仍然工作。 我想维护这些redirect到一个单独的nginxconfiguration文件中,以便于监督。 所以这里是第二个configuration文件(为了讨论目的而简化): # config file for Administrative_Redirects.example.com #redirects Webmin and/or Panel request to […]
我在上游遇到问题。 Web应用程序有一个位置块,如下所示。 我正在做ABtesting。 location / { include backend.conf; } backend.conf proxy_buffering on; proxy_set_header RIP $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; set $session_id_included 'false'; if ($request_uri ~ ';jsessionid=') { set $session_id_included 'true'; } if ($query_string ~ ';jsessionid=') { set $session_id_included 'true'; } proxy_set_header SESSION_ID_INCLUDED $session_id_included; proxy_pass_header Set-Cookie; proxy_intercept_errors on; proxy_connect_timeout 30; proxy_read_timeout 30; proxy_http_version 1.1; […]