Articles of nginx

nginx:fastcgi_cache_path为空

我想在我的nginx 1.5.8安装程序上尝试fastcgi_cache ,如下所示。 在nginx conf中,http部分,我补充道: fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=microcache:10m max_size=1000m inactive=60m; 在服务器部分: set $cache_uri $request_uri; # POST requests and urls with a query string should always go to PHP if ($request_method = POST) { set $cache_uri 'null cache'; } if ($query_string != "") { set $cache_uri 'null cache'; } # Don't cache uris containing the […]

redirect不支持SSL cipers \套件的浏览器

我想将使用旧浏览器的客户端redirect到指示他们下载较新浏览器的页面。 我的意思是“旧”浏览器 – 不支持某些ciper套件\ ssl协议的浏览器。 例如TLS1.1或更高版本去old.html和TLS1.2去index.html 那可能吗?

在NGINXnetworking服务器上将有效的url格式列入白名单

我想只在我们的RESTfulnetworking服务器/ API,使用正则expression式或其他东西白名单有效的URL模式。 但是,当用googlesearch一些例子时,我有点怀疑,因为没有太多的文档。 这样做不常见吗? 在我看来,这是任何networking服务器脚本的一个非常重要的部分。 我在这里俯瞰什么? 🙂

如何拒绝所有子目录中的shell执行?

我希望nginx拒绝那些在/ webroot / uploads里面有文件夹的用户 例如 /webroot/uploads/user1 /webroot/uploads/user2 /webroot/uploads/user1000 执行任何shell(php,pl,exe)。 shell通常隐藏在jpg或gif文件中。 像badfile.php.jpg一样 我也看到茂盛的二进制文件被上传到文件夹。 这里我的初步规则是: location ~ /webroot/uploads/(.+)\.php$ { deny all; } location ~ /webroot/uploads/(.+)\.pl$ { deny all; } 但我不确定它是否健壮。 所以我感谢你的帮助。

如何在CentOS 6上添加模块到nginx

我有nginx 1.4.4作为反向代理和Apache作为后端。 我的问题是 – 如何添加模块到nginx? 我需要这个模块http://wiki.nginx.org/HttpUploadProgressModule 检查nginx -V我没有这个模块 我读到,我需要重新编译一个新的模块nginx。 怎么做? 如何保存旧的nginxconfiguration文件,所以我不会搞乱我的networking服务器?

nginx + php-fpm上的Laravel返回空白页

我遇到了nginx + php-fpm提供的Laravel问题,它只是返回一个空白页面。 nginx,php和laravel都没有logging任何错误。 当使用CLI运行index.php时,它将返回欢迎页面。 laravel栈未触及,所有错误报告/显示/日志logging打开。 下面是我的nginx虚拟主机: server { listen 801; server_name _; root /path/to/laravel/public; index index.html index.html index.php; charset utf-8; gzip on; gzip_http_version 1.1; gzip_disable "MSIE [1-6]."; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_comp_level 9; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_read_timeout 180; # serve static files directly location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log […]

/etc/init.d/nginx不可执行

我在互联网上search了一段时间,我没有find解决scheme,所以我在这里问:我的问题是,为什么这个文件( /etc/init.d/nginx )不能执行? 我昨天跟着亚历克斯的教程,我遇到了一个问题。 一切工作,直到service nginx restart命令。 当我尝试运行这个命令,我会得到 nginx: You don't have permissions to execute nginx. 在Google上search了一段时间之后,我发现了一个潜在的答案,但是这已经在Alex的教程/演练中完成了: $ sudo chmod +x /etc/init.d/nginx 一些信息,如果你不想阅读教程: 我正在使用Nginx(正如您在阅读本文时所了解的那样) 它与Passenger一起安装,然后从头开始导入一个Nginx的初始化脚本和nginx.conf文件。 哦,我运行的是Debian,而不是Ubuntu,但那不应该是问题,或者? 所以,如果有人能帮助我,我将非常感激。 谢谢!

nginxconfiguration失败,SSL密钥/ pem(唯一的情况下)

我正在尝试安装SSL我的nginx反向代理与authenticationssl密钥,但我得到这个消息时,当我尝试重新启动服务器: Restarting nginx: [emerg]: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/cert.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib) configuration file /etc/nginx/nginx.conf test failed 每个文件都是根目录:具有600个权限的根目录我已经testing了这些证书,并且通过以下网站进行validation: http ://ssltools.com/cert_key_match 在我的键中没有拖尾怪异的字符,每行有64个字符 这里是我的configuration文件 server { listen 443; server_name my.domain.com; ssl on; ssl_certificate conf.d/cert.pem; ssl_certificate_key conf.d/cert.key; location / { proxy_pass http://upstream1; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } […]

几个小时后,清漆停在80号港口

我已经configuration清漆听80端口和Nginx听8080.大约24小时的正常运行时间后,我的网站已经下降了22个小时。 我检查了一下,发现清漆不在80端口上。 当网站启动时: abc@abc:~$ sudo netstat -anp –tcp –udp | grep LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 571/varnishd tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 376/nginx tcp 0 0 0.0.0.0:9171 0.0.0.0:* LISTEN 376/nginx tcp 0 0 publicip:6082 0.0.0.0:* LISTEN 569/varnishd tcp6 0 0 :::80 :::* LISTEN 376/nginx tcp6 0 0 ::1:6082 :::* LISTEN 569/varnishd 当网站停工时: […]

为什么Nginx的反向代理显示http位置?

我需要帮助我的nginxconfiguration。 在这个configuration我有/ svn的位置,来到Apache的HTTP。 Apache是​​密码保护(基本authentication)当访问https://my.server.com/svn它显示了Apachelogin提示,但在它,我可以看到它试图访问http://127.0.0.1:81/ – 我需要隐藏这些信息。 另外,当我点击取消button,它会redirect到http://127.0.0.1:81/显示403。 所以我需要的是通过https服务,而不是向任何人展示我用于内部通信的端口。 成功login后,它也是http url和端口81,但是当我手动添加https,并删除端口81它也可以;) upstream subversion_hosts { server 127.0.0.1:81; } server { listen 80; ## listen for ipv4 listen [::]:80 default ipv6only=on; ## listen for ipv6 # Set appropriately for virtual hosting and to use server_name_in_redirect server_name server.name.com; server_name_in_redirect off; location / { rewrite ^(.*) https://server.name.com$1 permanent; } } […]