Quantcast
Channel: Nginx Forum - Nginx Mailing List - English
Viewing all 7229 articles
Browse latest View live

Cache based on custom header (2 replies)

$
0
0
I use nginx as a reverse proxy, and upstream clients have a need for my
service to cache differently than downstream servers.

Is there a way to change what header nginx uses to accept cache settings?
Or a way to re-write cache headers before the cache settings take affect?

For example, I could have the upstream server set X-CustomCache (intended
for my service) and CacheControl (intended for my downstream), then use
add-header to set X-Accel-Expires to that value, except the header re-write
happens after the request has been cached from Cache-Control.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

mp4 video streaming: fast start up, but gets stuck... (1 reply)

$
0
0
Hello,

I have two mp4 files served by nginx: A ( https://goo.gl/lYGXjC ) and B
( https://goo.gl/ZsnX7M ). File A starts pretty fast ca. 2s and it
buffers/caches "future" content, however to B it takes more than 6s and
it doesn't seem to buffer/cache. However A gets stuck periodically which
makes it impossible to view (probably when it fails to cache), while B
plays nicely all the time. Here are my questions: 1. What makes A start
up so fast? 2. Is it possible to have both - fast start AND stable
playing? I have not encoded neither of the files but here is the ffmpeg
-i output of both ( http://pastebin.com/SuwYZkWP ) and AtomicParsley -T
of A ( http://pastebin.com/GRWJkqNy ) and B
( http://pastebin.com/YGq0HjCU ). If you need any additional
information, please, let me know.

Thank you very much!
ST

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

What does the "event timer add" step in the debug log signify? (no replies)

$
0
0
i am having a problem with trying to use oauth services in that the
callback from the provider gets “stuck” on my server. The logs in the
pastebin here: http://pastebin.com/qncJKVwQ summarise the experience.


Nginx is setup as reverse proxy to Apache which handles PHP using CGI. that
is, the old fashioned CGI and not fastCGI.


So the stream of things see to be as follows:


1. User makes login request to a PHP file
2. Nginx proxies this to Apache
3. Apache runs PHP and redirects to oauth provider
4. Provider authenticates and returns callback
5. Nginx proxies this to Apache
6. Apache runs PHP, user is logged in and redirected to index.php
7. Nginx proxies this to Apache
6. Apache runs PHP and serves index.php


On rare successful attempts, there is a big delay in Step 5 and most of the
time I just get a 504 Timeout response.

Steps 2, 5 & 7 are essentially the same thing but the issues only arises
with Step 5 with the callback request.


A look at the debug log shows the issue comes in on the callback call
between the "event timer add" & "post event” steps.


Will appreciate any insights.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

NGINX is hiring a technical evangelist (no replies)

$
0
0
NGINX is seeking a Technical Evangelist to join our team.

If you enjoy building demos, presenting at events, and assisting users in the community (including this mailing list), please apply for this job here:

http://www.greythorn.com/job/technical-evangelist-jobid-2468-b


--
Nick Shadrin



_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Issue with image resizing (no replies)

$
0
0
Hi,

I'm trying to implement live image resizing on nginx using
ngx_http_image_filter_module, and I get some weird issues with it.

this is my config for resizing:

server {
listen 1111;
server_name localhost;
set $backend 'bucket.s3.amazonaws.com';
resolver 8.8.8.8;
resolver_timeout 5s;
proxy_buffering off;
proxy_http_version 1.1;
proxy_pass_request_body off;
proxy_pass_request_headers off;
proxy_hide_header "x-amz-id-2";
proxy_hide_header "x-amz-request-id";
proxy_hide_header "x-amz-storage-class";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Set-Cookie";
proxy_set_header Host $backend;
proxy_method GET;
image_filter_interlace on;

location ~ \/(?<producttitle>.+?)\/(?<image>.+?)-W(?<width>(\d+)).(?<ext>[a-z_]*)
{
image_filter resize $width -;
proxy_pass http://$backend/$producttitle/$image.$ext;
error_page 415 = /empty;
}

location = /empty {
empty_gif;
}
}


and this is my config for caching:

server {
listen 80;
server_name images.domain.com;

location ~ \/(?<producttitle>.+?)\/(?<image>.+?)-W(?<width>(\d+)).(?<ext>[a-z_]*)
{
proxy_pass http://localhost:1111;
proxy_cache mc_images_cache;
proxy_cache_key "$host$document_uri$image$width";
proxy_cache_lock on;
proxy_cache_valid 200 30d;
proxy_cache_valid any 15s;
proxy_cache_use_stale error timeout invalid_header updating;
proxy_http_version 1.1;
expires 30d;
}

}

the issue I'm experiencing is getting 415 errors out of no where for some
of the width values I provide in the URL.
sometimes they work and sometimes I get 415.
nothing informative in debug log.

any idea what I'm doing wrong here?


--
Thanks,
Benyamin
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Behavior of realip module with this config (4 replies)

$
0
0
I've got the config below. I don't have these settings reconfigured
anywhere else. My understanding is that no matter anything else at all
anywhere else, and no matter whether the X-Forwarded-For field in the HTTP
header has one or multiple IP addresses, or isn't even present,
$remote_addr will not be altered.

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

From what I read, "real_ip_recursive on" means that $remote_addr can only
be set to an IP address that is not in the range set by set_real_ip_from.
And since that's 0.0.0.0/0, there is no IP that can meet this requirement.

Am I correct in my analysis?

http://nginx.org/en/docs/http/ngx_http_realip_module.html

~ Paul Nickerson

--


*CONFIDENTIALITY NOTICE*

The attached information is PRIVILEGED AND CONFIDENTIAL and is intended
only for the use of the addressee named above. If the reader of this
message is not the intended recipient or the employee or agent responsible
for delivering the message to the intended recipient, please be aware that
any dissemination, distribution or duplication of this communication is
strictly prohibited. If you receive this communication in error, please
notify us immediately by telephone, delete the message and destroy any
printed copy of the message. Thank you.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

View the client's HTTP protocol? (1 reply)

$
0
0
I know the $status variable shows you the upstream/origin's HTTP protocol
(e.g. HTTP/1.1 200) but is there a way to view the protocol the client made
the request with?

For example we've seen some S3 errors returned with a 505 which suggests
the user made a request with some strange HTTP protocol, but we don't know
what it would have been.

It would be good for us to log the client's protocol so we have that
information in future.

​Thanks.​
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Location url start with modifier, nginx -t pass the configuration test (1 reply)

$
0
0
Hi,

I setup an test Nginx 1.10.3 on local VM (Centos 6.7 x86_64). I configure
the following location

location =/404.html {
root /usr/share/nginx/html;
}

As my understanding, it is not an valid url, but `nginx -t` pass the
configuration test.

Is it a bug ?
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Request_Id Variable unknown? (1 reply)

$
0
0
I am using Nginx version 1.10.2 and get the following error:

Unknown “request_id” variable

This is in nginx.conf:

Log_format main ‘$remote_addr - $remote_user [$time_local] “$request” $status $body_bytes_sent “$http_referer” “$http_user_agent” - $request_id’;

Sent from Mail for Windows 10



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

proxy_pass isnt loading required resources (no replies)

$
0
0
Hello :) I`m having difficulties with configuring nginx to serve different applications based on the location in header. I`m successfully hit the index page but the additional resources are not returned (404). Checked the url in browser console and the request url is not modified with the location. Lets say the address is
example.com/test
..... but the next request for each resource is not automatically adding the location, so remain: example.com/bootstrap/3.3.7/css/bootstrap-theme.min.css
instead of
example.com/bootstrap/ test /3.3.7/css/bootstrap-theme.min.css .
If the location is added to the URL is all fine.
Kindly ask if someone can help me or give me a tip (not that i havent tried almost anything on the net), i suggest someone of you will know that or at least will tell me that is not supported.
Thanks in advanced!
Best, Georgi _______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Strange requests stalling inside nginx (no replies)

$
0
0
Hello.
We have some strange issues when requests seems to stall inside nginx - in nginx log we see that request took 1 second (and was terminated by client timeout), while excactly the same request (we have special unique headers to mark them) from the uwsgi logs took only 100ms to complete.

We also saw some very strange pauses in nginx debug log:

2017/01/26 20:17:51 [debug] 2749#0: *75780960 get rr peer, try: 2
2017/01/26 20:17:51 [debug] 2749#0: *75780960 get rr peer, current: 00007F6EC6C3D1F0 -1
2017/01/26 20:17:51 [debug] 2749#0: *75780960 stream socket 500
2017/01/26 20:17:51 [debug] 2749#0: *75780960 epoll add connection: fd:500 ev:80002005
2017/01/26 20:17:51 [debug] 2749#0: *75780960 connect to 10.0.0.176:80, fd:500 #75780961
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http upstream connect: -2
2017/01/26 20:17:51 [debug] 2749#0: *75780960 posix_memalign: 00007F6EC5213D60:128 @16
2017/01/26 20:17:51 [debug] 2749#0: *75780960 event timer add: 500: 10000:1485451081089
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http finalize request: -4, "/api/info/account/type/278933/?" a:1, c:2
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http request count:2 blk:0
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http run request: "/api/info/account/type/278933/?"
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http upstream check client, write event:1, "/api/info/account/type/278933/"
2017/01/26 20:17:51 [debug] 2749#0: *75780960 http upstream recv(): -1 (11: Resource temporarily unavailable)
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream request: "/api/info/account/type/278933/?"
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream send request handler
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream send request
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream send request body
2017/01/26 20:17:54 [debug] 2749#0: *75780960 chain writer buf fl:1 s:433
2017/01/26 20:17:54 [debug] 2749#0: *75780960 chain writer in: 00007F6E975088B0
2017/01/26 20:17:54 [debug] 2749#0: *75780960 writev: 433 of 433
2017/01/26 20:17:54 [debug] 2749#0: *75780960 chain writer out: 0000000000000000
2017/01/26 20:17:54 [debug] 2749#0: *75780960 event timer del: 500: 1485451081089
2017/01/26 20:17:54 [debug] 2749#0: *75780960 event timer add: 500: 200000:1485451274089
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream request: "/api/info/account/type/278933/?"
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http upstream process header
2017/01/26 20:17:54 [debug] 2749#0: *75780960 malloc: 00007F6E97AC0070:4096
2017/01/26 20:17:54 [debug] 2749#0: *75780960 posix_memalign: 00007F6ECACC95D0:4096 @16
2017/01/26 20:17:54 [debug] 2749#0: *75780960 recv: fd:500 408 of 4096
2017/01/26 20:17:54 [debug] 2749#0: *75780960 http proxy status 200 "200 OK"

Any help would be appreciated.

Trouble with redirects from backend (no replies)

$
0
0
Hi,

I have typo3 with nginx running behind an nginx reverse-proxy, mapped to a subdirectory.

So, it's www.company.bla/ourtypo3site.

Typo3 has RealURL extension installed and that adds a "slash" at the end if it's not sent by the browser - this is done via a redirect.

The trouble is that when this redirect is issued, the nginx reverse proxy turns it into a redirect into the main site.

www.company.bla/ourtypo3site/some/page

turns into
www.company.bla/some/page

I have the following configuration for nginx on the reverse proxy:


location /ourtypo3 {
include proxy.conf;
proxy_set_header HTTPS on;
proxy_pass http://ourtypo3:80/;
# http://serverfault.com/questions/444532/reverse-proxy-remove-subdirectory
}


How can I fix this?

At first, I tried hard-coding the redirects on the reverse-proxy. But that's a lot of work and not really a solution.

nginx 1.10



Regards
Rainer
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Move from apacht to nginx (1 reply)

$
0
0
Hi there,

i still moving from Apache to nginx.

I have a config part in apache which i dont understand how to convert it correct to nginx.


<Directory /var/www/vhosts/blah/fe>
RewriteBase /
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.php
</Directory>

<Directory /var/www/vhosts/blah/fe/static>
Options +FollowSymLinks -Indexes
AllowOverride none
</Directory>

i Know that this has to be done in locations what how? ;)

Cheers

Daniel_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

having nginx listen the same port more than once (1 reply)

$
0
0
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Apache to nginx (no replies)

$
0
0
Hi,

i create a vhost confuguration for a vhost but i ma not able to access /vakanz for exmaple.
I got a 404 error on the access logs.
I Tried already with rewrite rules and i also tried with locations, no matter what i do, nothing works.
Anyone has an idea what can i do?

Cheers

Daniel



server {

listen 80;

root /var/www/vhosts/reisen/sbo/current/web;



rewrite ^/static/(.*) /var/www/vhosts/reisen/fe/static/$1 last;

rewrite ^/hrouter.js /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/router.js /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/(vakanz|vrij|ajax|boek|buchen)$ /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/(vakanz|vrij|ajax|boek|buchen)/.* /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/himage/.* /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/image/.* /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/images/.* /var/www/vhosts/reisen/fe/index.php last;

rewrite ^/nur-flug$ /flight/destination permanent;





set $my_https "off";

if ($http_x_forwarded_proto = "https") {

set $my_https "on";

}

server_name preprod.reisen.de;



location / {

index app.php;

add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";

add_header Access-Control-Allow-Origin "*";

if (-f $request_filename) {

break;

}

try_files $uri @rewriteapp;

}



location @rewriteapp {

if ( $request_filename !~ opcache\.php ){

rewrite ^(.*)$ /app.php/$1 last;

}

}





#rewrite ^/(vakanz|vrij|ajax|boek|buchen)$ /var/www/vhosts/reisen/fe/index.php last;

#rewrite ^/(vakanz|vrij|ajax|boek|buchen)/.* /var/www/vhosts/reisen/fe/index.php last;





# location /vakanz {

# alias /var/www/vhosts/reisen/fe/;

# }



location ~* .js$

{add_header Service-Worker-Allowed "/";

}



location ~ ^/app\.php/_apilogger(/|$) {

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_split_path_info ^(.+\.php)(/.*)$;

include fastcgi_params;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

fastcgi_param HTTPS $my_https;

fastcgi_param SYMFONY__CMS__ENABLED false;

fastcgi_param CMS_ENABLED false;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 256k;

fastcgi_busy_buffers_size 256k;

add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";

add_header Access-Control-Allow-Origin "*";



# Prevents URIs that include the front controller. This will 404:

# http://domain.tld/app.php/some-path

# Remove the internal directive to allow URIs like this

internal;

}



location ~ ^/proxy\.php(\?|/|$) {

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_split_path_info ^(.+\.php)(.*)$;

include fastcgi_params;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

fastcgi_param HTTPS $my_https;

fastcgi_param SYMFONY__CMS__ENABLED false;

fastcgi_param CMS_ENABLED false;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 256k;

fastcgi_busy_buffers_size 256k;

add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";

add_header Access-Control-Allow-Origin "*";

# Prevents URIs that include the front controller. This will 404:

# http://domain.tld/app.php/some-path

# Remove the internal directive to allow URIs like this

#internal;

}



location ~ ^/app\.php(/|$) {

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_split_path_info ^(.+\.php)(/.*)$;

include fastcgi_params;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

fastcgi_param HTTPS $my_https;

fastcgi_param SYMFONY__CMS__ENABLED false;

fastcgi_param CMS_ENABLED false;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 256k;

fastcgi_busy_buffers_size 256k;

add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";

add_header Access-Control-Allow-Origin "*";



# Prevents URIs that include the front controller. This will 404:

# http://domain.tld/app.php/some-path

# Remove the internal directive to allow URIs like this

internal;

}





}


_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

SSL DN variable unicode handling (2 replies)

$
0
0
While testing the new $ssl_client_s_dn variable (as of 1.11.6) I discovered
that it doesn't handle unicode characters correctly, Say if I had a user
cert with a DN of 'CN=доверенная третья сторона' after going through nginx
it becomes 'CN=\D0\B4\D0\BE\D0\B2\D0\B5\D1\80\D0\B5\D0\BD\D0\BD\D0\B0\D1\8F
\D1\82\D1\80\D0\B5\D1\82\D1\8C\D1\8F
\D1\81\D1\82\D0\BE\D1\80\D0\BE\D0\BD\D0\B0'.
This is not very helpful and unicode support here is the only thing
preventing our project from using nginx. We are currently using httpd as it
handles this case in a more friendly way, but would like to move away from
it.

Is there something I can set to fix this? Is this a bug or is it working as
intended?

Thank you for your time,
-------------
- Alex Addy -
-------------
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

TLS Multiplexing to the Origin Server (1 reply)

$
0
0
Hello All,

I am seeing an increase in the number of new TLS connections to my origin server when using NGINX as a reverse proxy. I am offloading TLS at NGINX and starting a new TLS connection to the origin.

The workflow is as follows:

client --> NGINX --> origin server

I would expect NGINX to either persist a handful of TLS connection or at a minimum re-use previously established TLS connections using TLS session tickets.
However, the behavior that we see is NGINX is apparently opening a new TLS connection to the origin for nearly every client request. This means going through the full asymmetric TLS handshake for nearly every request. This is not desirable for both the latency added and CPU performance hit for going through the full TLS handshake.
I have validated that my origin server supports TLS Session re-use by using the following openssl command.

echo | openssl s_client -tls1_2 -reconnect -state -prexit -connect <my origin server IP>:443 | grep -i session-id

Below is the output from "nginx -v"

nginx version: nginx/1.8.1

How can I either persist existing TLS connections or leverage TLS session tickets?

I found the following link that may be relevant.
http://hg.nginx.org/nginx/rev/1356a3b96924

Thanks!
Brooks

P.S. Below is the relevant proxy configs that I have for my origin server.

#proxy rules in place for the domain

proxy_redirect off;
proxy_connect_timeout 15;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffers 8 16k;
proxy_buffer_size 16k;
proxy_busy_buffers_size 64k;

proxy_cache XNXFILES;
proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_cache_valid 301 302 0m;
proxy_cache_valid 200 60m;
proxy_cache_key $host$request_uri;
proxy_http_version 1.1;
proxy_set_header Connection "";

proxy_set_header Accept-Encoding 'gzip';

# The variable $host is sets the host request header to the origin server.
proxy_set_header Host $host;

#The variables REQUEST_PROTO and PROXY_TO are used when determining which origin to use.
proxy_pass $REQUEST_PROTO://$PROXY_TO;

答复: Re: having nginx listen the same port more than once (no replies)

$
0
0
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: having nginx listen the same port more than once (no replies)

$
0
0
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

nginx-1.11.10 (no replies)

$
0
0
Changes with nginx 1.11.10 14 Feb 2017

*) Change: cache header format has been changed, previously cached
responses will be invalidated.

*) Feature: support of "stale-while-revalidate" and "stale-if-error"
extensions in the "Cache-Control" backend response header line.

*) Feature: the "proxy_cache_background_update",
"fastcgi_cache_background_update", "scgi_cache_background_update",
and "uwsgi_cache_background_update" directives.

*) Feature: nginx is now able to cache responses with the "Vary" header
line up to 128 characters long (instead of 42 characters in previous
versions).

*) Feature: the "build" parameter of the "server_tokens" directive.
Thanks to Tom Thorogood.

*) Bugfix: "[crit] SSL_write() failed" messages might appear in logs
when handling requests with the "Expect: 100-continue" request header
line.

*) Bugfix: the ngx_http_slice_module did not work in named locations.

*) Bugfix: a segmentation fault might occur in a worker process when
using AIO after an "X-Accel-Redirect" redirection.

*) Bugfix: reduced memory consumption for long-lived requests using
gzipping.


--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Viewing all 7229 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>