laravel valet-linux redirect error - nginx

I'm running the very useful valet-linux package for my local dev environment. I recently updated it (using composer global update), and now my local Joomla dev sites are not loading properly.
The error in ~/.valet/Log/nginx-error.log shows multiple occurrences of
2018/08/11 11:00:28 [error] 7825#7825: *11 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *38 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/jui/js/bootstrap.min.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *40 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/mod_sampledata/js/sampledata-process.js HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *42 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/system/js/core.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *44 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /administrator/templates/isis/js/template.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *62 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /administrator/templates/isis/images/logo.png HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
I'm fairly experienced with Apache, but I don't know where to begin debugging the nginx errors. Has anyone run into this?

Uninstalling and re-installing valet-linux resolved the issue. Still not sure what had happened.

Related

nginx 502 for 10s while upstream is restarting

I have a very simple config:
server {
listen 80;
server_name: example.fr;
location / {
proxy_pass http://localhost:8000;
}
}
However when I restart my backend (for example Node.JS restarted on change by nodemon), even if the backend starts like in 2 seconds, Nginx returns a 502 for 10s and this shows in the logs:
2022/05/10 16:10:48 [error] 2013398#2013398: *2241 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://127.0.0.1:8000/", host: "example.fr"
2022/05/10 16:10:48 [error] 2013398#2013398: *2241 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://[::1]:8000/", host: "example.fr"
2022/05/10 16:10:49 [error] 2013398#2013398: *2244 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:50 [error] 2013398#2013398: *2245 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:51 [error] 2013398#2013398: *2246 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:52 [error] 2013398#2013398: *2247 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:53 [error] 2013398#2013398: *2248 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:54 [error] 2013398#2013398: *2249 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:55 [error] 2013398#2013398: *2250 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:57 [error] 2013398#2013398: *2251 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:58 [error] 2013398#2013398: *2252 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
I've seen that for the upstream directive there are some controls (max_fails and fail_timeout (http://nginx.org/en/docs/http/ngx_http_upstream_module.html#max_fails)) but this only seems to apply to upstream and I cannot find equivalent options for plain proxy_pass.
Any idea?
Short answer: Replace localhost with 127.0.0.1.
Quoting user #rogerdpack for the long answer:
The really tricky part is that if you specify proxy_pass to
"localhost" and your box happens to also have ipv6 and ipv4 "versions
of localhost" on it at the same time (most boxes do by default), it
will count as if you had a "list" of multiple servers in your server
group, which means you can get into the situation above of having it
return "502 for 10s" even though you list only one server.
See here "If a domain name resolves to several addresses, all of them
will be used in a round-robin fashion." One workaround is to declare
it as proxy_pass http://127.0.0.1:8000; (its ipv4 address) to
avoid it being both ipv6 and ipv4. Then it counts as "only a
single server" behavior.
(answering my own question because the answers explaining the problem were buried or the question wasn't really explicit about the particular symptoms I had)

Nginx Cloudflare Wordpress Intermittent 521 Error

I have multiple Wordpress sites running on an EC2 instance. The instance runs nginx, and I configure the 2 wordpress sites and three static html sites to folders in /var/www/html.
Every few weeks, the entire thing goes down and I can't figure out why. There are a number of errors in the /var/log/nginx-error.log file. I can always restart the server with service nginx restart.
I'm not sure if this is because I have multiple sites or if someone has been hacking into my server. I have turned off comments on all of my sites to avoid potential issues.
The site receives very little real traffic, but Cloudflare is telling me there have been 17,885 requests in the last month.
Is there a way I can save this server so it doesn't continuously fall over?
Here are the final few rows of the error file from the latest fail. Happy to post more if it will help.
2021/01/05 17:44:19 [error] 15327#0: *43617 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 172.68.239.172, server: coreygarvey.com, request: "GET /up.php HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 18:04:18 [error] 15327#0: *43622 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 172.69.62.221, server: coreygarvey.com, request: "GET /wp-login.php HTTP/1.1", host: "www.coreygarvey.com", referrer: "http://coreygarvey.com/wp-login.php"
2021/01/05 19:34:26 [error] 15327#0: *43674 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 108.162.216.185, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "coreygarvey.com"
2021/01/05 19:34:26 [error] 15327#0: *43674 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 108.162.216.185, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "coreygarvey.com"
2021/01/05 19:58:22 [error] 15327#0: *43699 open() "/var/www/html/home/owa/auth/logon.aspx" failed (2: No such file or directory), client: 192.241.209.91, server: coreygarvey.com, request: "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1", host: "52.7.66.46"
2021/01/05 19:58:22 [error] 15327#0: *43699 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 192.241.209.91, server: coreygarvey.com, request: "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1", host: "52.7.66.46"
2021/01/05 20:05:39 [error] 15327#0: *43713 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 162.158.79.160, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:05:39 [error] 15327#0: *43713 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.79.160, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:18:46 [error] 15327#0: *43722 open() "/var/www/html/home/robots.txt" failed (2: No such file or directory), client: 108.162.246.22, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "coreygarvey.com"
2021/01/05 20:18:46 [error] 15327#0: *43722 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 108.162.246.22, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "coreygarvey.com"
2021/01/05 20:25:00 [error] 15327#0: *43725 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 173.245.52.168, server: coreygarvey.com, request: "GET /wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:00 [error] 15327#0: *43727 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.62.203, server: coreygarvey.com, request: "GET /blog/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:03 [error] 15327#0: *43729 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.154.198, server: coreygarvey.com, request: "GET /wp/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:03 [error] 15327#0: *43729 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.154.198, server: coreygarvey.com, request: "GET /wordpress/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:23:03 [error] 15327#0: *43807 open() "/var/www/html/home/robots.txt" failed (2: No such file or directory), client: 162.158.78.139, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:23:03 [error] 15327#0: *43807 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.78.139, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:48:13 [error] 15327#0: *43836 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 40.86.206.98, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "52.7.66.46"
2021/01/05 22:48:13 [error] 15327#0: *43836 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 40.86.206.98, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "52.7.66.46"
We encountered ioptimizations (your log mentions /wordpress/wp-content/plugins/ioptimizations/IOptimizes.php) a year back, its pure malware, inspect the code, it creates a form to upload a file, and it will execute it (and can thus install more garbage). My bet is that this is where your troubles come from.
We use Wordfence as protection on the Wordpress website, it blocks anything that tries te execute outside of Wordpress, so it could do no damage in our case (so I recommend using it).
We have tried informing Wordpress dev team about this. Just having a malicious plugin is one thing, but how it manages to install itself on its own on your website is a serious concern (and would imply some vulnerability in Wordpress being exploited). But our complaints got ignored, and there is a serious lack of information to be found on this when try to google it (I happened to stumble upon yours to see if there was more information about it by now).
So I would recommend anti malware plugins (wordfence) and do a thorough cleaning, make sure to get rid of ioptimizations and look for any other damage it might have caused.
This is my first post on stackoverflow, I hope I did this right.
Good luck!

The last & break mechanism in nginx rewrite

Am now dealing with nginx rewrite for my project but got something out of my expectation, just share with you to see if any reasonable advice on this.
The nginx server setting list below:
location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3;
rewrite ^(/download/.*)/movie/(.*)\..*$ $1/avi/$2.mp3 break;
rewrite ^(/download/.*)/avvvv/(.*)\..*$ $1/rmvb/$2.mp3;
}
From above section, you can see that I only add one download location with three rewrite rules.I open the debug log in nginx and start it to load this setting.
Now we enter url: localhost/download/123/movie/UBW.avi in our browser. From the log, we can see that the rules are hit, logs below:
2017/05/22 15:27:27 [notice] 1904#12520: *85 "^(/download/.*)/media/(.*)\..*$" does not match "/download/123/movie/UBW.avi", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:27:27 [notice] 1904#12520: *85 "^(/download/.*)/movie/(.*)\..*$" matches "/download/123/movie/UBW.avi", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:27:27 [notice] 1904#12520: *85 rewritten data: "/download/123/avi/UBW.mp3", args: "", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:27:27 [error] 1904#12520: *85 CreateFile() "D:\Soft\nginx-1.13.0/html/download/123/avi/UBW.mp3" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
From above info, we can see that the second rule is hit and the section break due to the "break" keyword. This behavior is in our expectation.
But wen I changed the section like below and behave the same behavior as above:
location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3;
rewrite ^(/download/.*)/movie/(.*)\..*$ $1/avi/$2.mp3 last;
rewrite ^(/download/.*)/avvvv/(.*)\..*$ $1/rmvb/$2.mp3;
}
The log below:
2017/05/22 15:33:45 [notice] 11244#11544: *92 "^(/download/.*)/media/(.*)\..*$" does not match "/download/123/movie/UBW.avi", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [notice] 11244#11544: *92 "^(/download/.*)/movie/(.*)\..*$" matches "/download/123/movie/UBW.avi", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [notice] 11244#11544: *92 rewritten data: "/download/123/avi/UBW.mp3", args: "", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [notice] 11244#11544: *92 "^(/download/.*)/media/(.*)\..*$" does not match "/download/123/avi/UBW.mp3", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [notice] 11244#11544: *92 "^(/download/.*)/movie/(.*)\..*$" does not match "/download/123/avi/UBW.mp3", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [notice] 11244#11544: *92 "^(/download/.*)/avvvv/(.*)\..*$" does not match "/download/123/avi/UBW.mp3", client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
2017/05/22 15:33:45 [error] 11244#11544: *92 CreateFile() "D:\Soft\nginx-1.13.0/html/download/123/avi/UBW.mp3" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "GET /download/123/movie/UBW.avi HTTP/1.1", host: "localhost"
From the second row of the log, we can see that the rule is hit, but then nginx start a new loop for the download section, the strange thing is that , it didn't hit the rule, why?
Also, if we use last keyword, then how many times will the nginx try to loop the section, in default it's two, right?
The ngx_http_rewrite_module module is used to change request URI using
PCRE regular expressions
Remember that when you rewrite the uri, the uri will change .
For last
When rewrite module meets last, it stops processing the current set
and the rewritten request is passed once again to find the appropriate
location (and the new set of rewriting rules).
In your configure
location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3; //a
rewrite ^(/download/.*)/movie/(.*)\..*$ $1/avi/$2.mp3 last; //b
rewrite ^(/download/.*)/avvvv/(.*)\..*$ $1/rmvb/$2.mp3; //c
}
your url localhost/download/123/movie/UBW.avi
your request uri is /download/123/movie/UBW.avi
first pass
the /download/123/movie/UBW.avi match b ,so the uri rewrite to /download/123/avi/UBW.mp3 ,the first pass finish.
second pass
And then, in the second pass ,the uri
is
/download/123/avi/UBW.mp3
So it do not match a b c, finally , it throw error in log.

nginx error log - request from unknown hosts

I am getting request from unknown hosts in nginx error.log trying to request files or requests which don't exist in the system.
Receiving below list of errors in error log,
directory index is forbidden, client: 61.157.96.126, request: "GET http://www.haosou.com/?rands=_688651072032161501826712 HTTP/1.1", host: "www.haosou.com"
[error] 10006#0: *67753 open() /favicon.ico" failed (2: No such file or directory), client: 95.25.186.223, request: "POST http://t3.proxy-checks.com/favicon.ico HTTP/1.1", host: "t3.proxy-checks.com"
[error] 10006#0: *66849 directory index of "--" is forbidden, client: 120.132.95.89, request: "GET http://www.qunar.com/ HTTP/1.1", host: "www.qunar.com"
What could be the issue here? Do I need to make any configuration changes on my server to stop such requests? or Is it ok to receive such requests on server?

serving pdfjs PDFs over nginx

I am looking to serve pdf.js using nginx, but Iam having trouble with the example so far. So, I do the following:
git clone git://github.com/mozilla/pdf.js.git /some/location/pdfjs
cd /some/location/pdfjs
.. Now, I set up my nginx config file like so:
server {
listen 8181 default_server;
listen [::]:8181 default_server ipv6only=on;
# Make site accessible from http://localhost/
server_name localhost;
root /some/location/pdfjs/web;
index viewer.html;
access_log /some/location/access.log;
error_log /some/location/error.log;
location / {
}
}
When I run nginx now, I the PDF does not show up. I do see the pdf.js outer canvas though - just not serving the PDF file.
When I look at the error messages, I see:
2014/12/10 16:28:32 [error] 15549#0: *1 open() "/some/location/pdfjs/web/external/webL10n/l10n.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /external/webL10n/l10n.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *2 open() "/some/location/pdfjs/web/src/shared/util.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/shared/util.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *3 open() "/some/location/pdfjs/web/src/display/api.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/api.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *4 open() "/some/location/pdfjs/web/src/display/metadata.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/metadata.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *5 open() "/some/location/pdfjs/web/src/display/canvas.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/canvas.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *6 open() "/some/location/pdfjs/web/src/display/webgl.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/webgl.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *1 open() "/some/location/pdfjs/web/src/display/pattern_helper.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/pattern_helper.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *2 open() "/some/location/pdfjs/web/src/display/font_loader.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/font_loader.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *3 open() "/some/location/pdfjs/web/src/display/annotation_helper.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/annotation_helper.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
Not sure if this has got to do with serving the actually PDF - would appreciate any suggestions to solve this.

Resources