Articles of nginx

nginx反向代理不cachingphp生成的图像

我正在testing在nginx中创build一个caching,并让它在我设置的两个目录下工作得很好,除了以下内容:当我尝试caching一个php生成的图像时,它只是作为我的apache服务器的代理运行php图像 – 生成脚本。 它可以在任何静态html,css,js或文本文件上正常工作。 我怎样才能让nginxcachingphp生成的图像呢? 我在想我的PHP一代可能会失去一些东西,使nginx认为它是一个可caching的文件,但不知道从哪里去。 这是我的nginx.conf: user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { proxy_cache_path /var/www/cache/muncherelli/cdn levels=1:2 keys_zone=muncherelli:8m max_size=1000m inactive=600m; proxy_cache_path /var/www/cache/mi/client/images levels=1:2 keys_zone=miclient:8m max_size=1000m inactive=600m; proxy_temp_path /var/www/cache/tmp; server { location /muncherelli/cdn/ { proxy_pass http://muncherelli.com/wp-content/; proxy_cache muncherelli; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; } location […]

nginx上的SSLconfiguration – 缺less.icrt文件?

我已经设法让SSL在我的网站上工作,在nginx下(或者我以为!)。 但是,我试图通过GTMetrix(检查新的速度)运行它,似乎有什么问题。 我谈到他们的支持,他们说: 您的SSL证书安装不正确。 它缺less中间/链式证书。 所以,我回到服务器原始(Apache)configuration,果然find了这个额外的线: SSLCACertificateFile /etc/httpd/ssl.crt/wildcard.site.net.icrt 我做了一些谷歌search,但我有点困惑,如何与Nginx的作品。 我发现的一切都告诉我你需要使用: ssl on; ssl_certificate /etc/ssl/your_domain_name.pem; (or bundle.crt) ssl_certificate_key /etc/ssl/your_domain_name.key; (这是我所拥有的) 任何人有任何指针? 更新:我越看越,我越坚信我已经把它正确的: 如何将Apache服务器的SSL证书传输到NGINX服务器 然而,在sslshopper.com上运行检查时,我得到:

Nginx随机拒绝SSL连接

我正在运行一个Nginx反向代理的网站https://telerandom.com (NodeJS服务器,端口9576)。 它通常工作,但有时它会开始拒绝来自某些用户的所有SSL连接(而对于其他人而言,这是完全正常的)。 这个拒绝SSL连接的时间通常会持续大约45分钟,然后事情恢复正常。 我注意到同一networking上的设备(例如我的笔记本电脑和同一WiFinetworking上的手机)同时遇到这些故障。 但是,如果我要断开手机与WiFi的连接并使用手机数据,则可以正常连接到网站。 端口80和443都在服务器上打开。 当连接被拒绝时,我在错误日志中得到这些消息: 2015/07/24 20:36:19 [debug] 1695#0: *92 post event 0000000002327BB0 2015/07/24 20:36:19 [debug] 1695#0: *92 post event 000000000233B3C0 2015/07/24 20:36:19 [debug] 1695#0: *92 delete posted event 000000000233B3C0 2015/07/24 20:36:19 [debug] 1695#0: *92 http run request: "/socket.io/?EIO=3&transport=websocket&sid=_32mgWR6o50vOl7pAAAC" 2015/07/24 20:36:19 [debug] 1695#0: *92 http upstream process upgraded, fu:1 2015/07/24 20:36:19 [debug] […]

为什么Web框架应该托pipe在Web服务器上?

我刚刚开始在托pipe的世界,而我不能完全理解的是为什么Web框架需要在Web服务器托pipe? 最近我有一个网站运行Django,并感谢一些像Dj静态和静态的Python脚本我能够提供静态文件。 那么为什么需要使用networking服务器呢? 编码几天后,我想启用https,我读了我需要使用一个Web服务器,但经过一些更多的研究,我发现一个人说,能够使用HTTPS不使用Web服务器的职位。 那么,为什么需要Web服务器呢? 这是安全原因吗? 谢谢!

Nginx丢弃号码后的数据(#)

我有现在的请求,看起来像 https://smth.ru/smth/GET_DATA?p_DATA_TYPE=arg1#arg2&arg2=XXX 我知道这是非常不正确的,但我必须与它合作。 它和Apache一起工作。 现在我需要nginx作为这个请求的代理。 但它简单地丢弃了“#”后面的所有内容,而且在$ query_string之类的variables中找不到它 这就是为什么后端服务器只接收 https://smth.ru/smth/GET_DATA?p_DATA_TYPE=type 如何获得#后的参数或使nginx代理完整的请求? 我的服务器块看起来像 server { … location / { proxy_pass_header Authorization; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080/$request_uri?$query_string; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } … } 通过代理作为 proxy_pass http://127.0.0.1:8080; 也没有效果。 试用套餐nginx.x86_64 0:1.6.2-23.el6.art然后更新到nginx.x86_64 0:1.8.0-1.el6.ngx – 相同的效果… UPD:似乎Apache使用整个请求,而nginx丢弃#后的所有内容。

在一个nginx中configuration两个不同的应用程序服务器?

我有两个不同的应用服务器,一个是我的自定义应用程序,另一个是CRM。 我的自定义应用程序将得到请求,它会请求crm服务器的一些数据,并在最后服务器的客户。 我有一个nginx正在处理crm,我想要与我的应用程序处理相同的nginx,并让这些应用程序之间进行通信。 我已经尝试了以下configuration upstream example.net{ server 192.168.200.144:8080; # virtual machine web1 site server 192.168.200.143:8080; # virtual machine web2 site } upstream example-crm.net{ server 192.168.200.85:8080; # virtual machine web1 site server 192.168.200.86:8080; # virtual machine web2 site } server { listen 192.168.200.173; # public IP address of your server server_name example.net; server_name example-crm.net location / […]

nginx:gzip:text / *似乎不会压缩文本/ javascript

根据经验,我是否正确地理解mgintypestext / *在nginx上不被支持? configuration是: gzip_types text/css text/* 而JavaScript不是压缩。 去了 gzip_types text/css text/* text/javascript 现在JavaScript是gzipped ….(所以我应该放下文本/ *对吗?)

如何通过nginx提供具有可执行权限的二进制文件?

我正在服务位于/var/www/bin/binary的Go二进制/var/www/bin/binary : location ~ (binary) { root /var/www/bin; } 但是,当我用wget http://example.com/binary下载它时,我无法马上运行它,因为它不再是可执行文件。 我需要先运行chmod +x binary 。 我怎样才能解决这个问题? 谢谢。 编辑:发现一个更大的讨论类似的问题: https : //unix.stackexchange.com/questions/82578/why-is-that-when-i-download-a-binary-from-the-web-it-doesnt -具备可执行每

Nginx的:我可以设置一个IP + URI的密钥limit_req_zone?

我试图设置Nginx的limit_req模块来限制任何IP可以对同一个URL做出的请求速率。 我想用一个由客户端的IP和请求URI的组合组成的关键字来定义limit_req_zone 。 那就是,而不是这个: limit_req_zone $binary_remote_addr zone=req_dev:10m rate=2r/s; 像这样的东西: set $ip_url "$binary_remote_addr$request_uri" limit_req_zone $ip_url zone=req_dev:10m rate=2r/s; 但是这不起作用,因为set不能在http上下文中调用: nginx: [emerg] "set" directive is not allowed here in /etc/nginx/nginx.conf:47 有没有办法做到这一点? 只是要清楚:我不想限制一个特定的url的速度。 我想避免每秒两次以上的IP地址。

对日志文件中具有不同域/ URL的网站的请求,黑客入侵企图?

在我的一个网站上,我logging了对服务器所做的所有url请求。 我将这些数据logging下来以改进网站。 日志看起来像 http://example.com/search 2016-01-12 23:03:09 http://example.com/post/1234 2016-01-12 23:03:12 ………. 所以,这看起来很正常。 我现在在日志中发现了一些对我没有意义的东西,我有几百个具有不同域的条目 http://dhg.example.org/httptest.php 2016-01-10 20:12:15 在过去,我有一些类似的,我的域名或服务器的IP地址 http://example.com/httptest.php http://192.0.123.12/httptest.php 我想知道这是怎么可能的要求,我的服务器有这个url,而不是我的网站的url或服务器IP。 我应该担心吗? 这是对我的服务器的某种types的攻击? 编辑 具体来说,服务器上运行的应用程序正在logging这些URL,而不是服务器本身。 所以在每个页面请求我的脚本logging$_SERVER数组中的URL