由于我进行的testing(使用Java API读取GeoIP.dat以及本地testing)可能不够,所以我想知道当configurationgeo-ip模块时以及在没有findIP到国家/地区的映射时Nginx会发生什么。 。? 使用Java API的示例结果: 151.38.39.114 -> IT 12.25.205.51 -> US 0.0.0.0 -> — 127.0.0.1 -> — 所以,如果我这样做: proxy_set_header GeoIP-CountryCode $geoip_country_code; 我也应该从NginX,或空白/空string,或其他什么时候真正的IP映射可能会丢失(如果可能的话)的结果“ – ”? (注意:当从本地地址(如127.0.0.1或192.168.xx ,标头值始终为空(空))
我有一个在节点+ express + passport + mongo数据库+ ejs的web应用程序,单个应用程序configuration为处理所有的子域。 我使用nginx作为代理服务器,我需要并且必须使用代理caching来减less节点服务器上的负载。 我有2个问题, 1.我需要configurationnginx代理caching,因为它应该为各个子域创build不同的caching。 2.对于login的用户内容会改变一点点。 我怎么能pipe理这个..? 请帮我解决。 提前致谢。 以下是configuration upstream backend_app_hosts { server localhost:3005 max_fails=0 fail_timeout=10s; server localhost:3006 max_fails=0 fail_timeout=10s; keepalive 64; } proxy_cache_path /var/www/cache levels=1:2 keys_zone=cache-1:8m max_size=1000m inactive=600m; server { listen 80 ; charset UTF-8; client_max_body_size 16M; keepalive_timeout 20; server_name *.domain.com; location / { proxy_redirect off; proxy_set_header X-Real-IP […]
我有2个局域网与IPSec隧道联合: 10.10.10.1/24 10.10.20.1/24 我的一个内部网站在10.10.10.50上运行,这为用户提供了大量内容,比如300-400MB的档案,对于.20.1 / 24用户来说,检索内容需要很长的时间。 该站点本身通过WAN访问20.1 / 24 我已经将整个内容同步到位于20.1 / 24的服务器,以减less停机时间。 我的问题是:如何从20.1 / 24路由用户,以便能够从20.1 / 24上的第二台服务器下载内容 为了可视化,它将如下所示: .20.1/24? – > Download from 20.1/24 server WAN – / \.10.1/24? – > Download from 10.1/24 server 我不包括NAT问题,因为这是另一个话题。 但要清除的东西 – 我的规则将基于这两个networkingWAN IP的。
我们有一个登台机器,最近已经返回403状态。 这是一个运行nginx的centOS机器。 Nginx将一些stream量传递给Scala Play应用程序和运行PHP应用程序(Apache Drupal)的Apache。 该服务器受基本的htaccessauthentication保护。 当我导航到服务器,我得到了基本的身份validation,并确定login。 如果我请求robots.txt文件,它立即出现,nginx access.log显示请求是200 OK,并logging我的htaccess用户名。 XX.XXX.XXX.XXX – MYUSER [31/Dec/2015:16:16:02 +0000] "GET /robots.txt HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-" 但是当我请求网站的主页(Drupal主页),我得到了浏览器中的403错误。 当我尾巴的nginx错误日志,我看到这个消息logging了我的请求后不久: XX.XXX.XXX.XXX – MYUSER [31/Dec/2015:16:18:02 +0000] "GET /index.php HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) […]
我的意图是将所有请求redirect到https://前缀URL和裸地域以及www.*等效项。 acme-challengeurl将被排除在外。 我试着用下面的configuration,并从赤裸裸的域获得正确的redirect,但是当我访问www. 前缀一,我提供了默认的服务器,没有redirect到端口443服务器,并从https服务器根服务。 为什么是这样? server { listen 80; listen [::]:80; server_name example.org www.example.org; location '/.well-known/acme-challenge/' { root /var/www/challenges; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; server_name example.org www.example.org; ssl_certificate /etc/nginx/ssl/example.org.pem; ssl_certificate_key /etc/nginx/ssl/example.org.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; ssl_session_cache shared:SSL:50m; ssl_dhparam /etc/nginx/ssl/dhparams.pem; […]
我有一个目录,有时存在,有时不存在。 如果要求和存在,其中的所有文件应该可用,例如像这样 location /my_dir { root /other/www/root } 因此,如果用户要求http://myhost.example.com/my_dir/file和/my_dir存在,则应该提供服务。 但是,如果/other/www/root/my_dir不存在,nginx 应该像从未定义位置块那样操作,并使用正常的规则来处理请求。 具体来说,如果目录不存在,客户端就不应该知道这个特殊的规则,即不应该有用户可见的指示符。 一个想法是把默认的configuration放在一个命名的位置,并将上面的行改为下面的代码(参考如何用指定的位置写一个DRY模块化的nginx conf(反向代理) ): location /my_dir { root /other/www/root try_files $uri $uri/ @default; } location / { error_page 418 = @default; return 418; } location @default { # all default stuff like the default root, index etc. goes here } 这是有道理的还是有更好的办法? 更新 以下是nginx的两个configuration示例: # […]
我正在build立一个联系表格的网站,我想用PHP。 该网站使用NGINX在我简单的本地服务器上托pipe。 我知道NGINX使用FastCGI和PHP-FPM,但是对于这一点来说,我并不确定如何configuration所有的东西来使其工作。 这是我在我的nginx.conf文件中: server { listen 7070; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /Users/vibhusharma/Sites/JCA; access_log "/Users/vibhusharma/Sites/JCA/jca_access.log"; error_log "/Users/vibhusharma/Sites/JCA/jca_errors.log"; index index.html index.htm; try_files $uri $uri/ /index.html =404; #fastcgi_split_path_info ^(.+\.php)(/.+)$; #fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_buffers 256 128k; #fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; #fastcgi_read_timeout 300s; #include fastcgi_params; } #error_page 404 […]
我试试这个栈:nginx + uwsgi + django + postgresql,请求可以到达django的视图,客户端显示500 server internal fault ,我查了postgres日志,发现错误could not receive data from client: Connection reset by peer 。 如何debugging呢?
我们使用Nginx作为反向代理,并希望允许网站访问者从Azure Blob下载文件 server { listen 443; ssl_certificate /sslcert/ssl.crt; ssl_certificate_key /sslcert/com.key; server_name get.domain.com; location / { proxy_redirect off; proxy_pass http://oururl.blob.core.windows.net/; } 但是,HSTS不允许此请求,因为后端将显示具有不同通用名称的证书(?)。 即使HSTS被禁用,我们仍然会看到关于主机真实性的警告。 奇怪的是,我们正在使用proxy_pass作为本地后端,没有任何问题。 作品: /home/user# curl get.domain.com <?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidQueryParameterValue</Code><Message>Value for one of the query parameters specified in the request URI is invalid. 不起作用: /home/user# curl https://get.domain.com curl: (51) SSL: no alternative certificate subject name […]
我有conf: location ~ ^/secret(.+) { rewrite ^/secret(.+)$ /phpmyadmin$1; } location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; auth_basic "Auth"; auth_basic_user_file /etc/nginx/pass/.pma; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; include sites-available/common/php; } internal; } 提交login表单phpmyadmin后,我已被redirect到mysite.com/phpmyadmin/index.php?token=…而不是mysite.com/secret/index.php?token… 为什么这样做?