我有两个应用程序需要使用相同的nginx服务器。 第一个应该在help.example.com下运行。 另一个,每个客户都有一个域名,例如foo.example.com和bar.example.com 我明白,Nginx的偏好较长的服务器名称,但我似乎无法find一个例子,将帮助我。 我试图使用两个nginx的conf文件,但我失败了。 这里是“规格”: server { listen 80; server_name www.example.com.br example.com.br; root /opt/apps/gsa-web/src/; client_max_body_size 4G; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 10; proxy_read_timeout 1800; proxy_pass http://localhost:8000/; proxy_intercept_errors on; } error_page 500 502 503 504 /media/50x.html; } help.conf server { listen 80; server_name […]
我想知道我的configuration是否可以接受,因为我使用邪恶的“如果”。 我读了这个 – https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ map $http_app_code $app_code { default "server-api-1"; ~app1 "server-api-1"; ~app2 "server-api-10"; ~app3 "server-api-21"; } location /getSite { if ($app_code = "server-api-1") { proxy_pass http://$app_code.dev.internal.com/api/v1/getSite; } if ($app_code = "server-api-10") { proxy_pass http://$app_code.dev.internal.com/api/v1/getSite; } if ($app_code = "server-api-21") { proxy_pass http://$app_code.dev.internal.com/api/v3/getSite; } }
我有简单的位置用于服务器生成的caching: location /api/get-hloc { #add acccess-allow headers add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; #try cached files root /dev/shm/get-hloc/; try_files /$arg_hash.hloc /stocks/graphics/get-iis-graphic?$args; } 它能做什么? 它只是检查是否有内存中的文件,可以为请求服务,如果没有文件,尝试实际生成文件的位置为未来的请求,并将其提供给客户端。 这一切都按预期工作,除了被忽略的add_header指令。 在try_files中尝试新位置之前是否可以添加连接头?或者我应该只在端点位置添加连接头?
我被黑了,检查nginx日志,我发现了几个这样的请求: 169.229.3.91 – – [18/Jun/2016:09:42:19 +0000] ")\xE7\xD1?\xD6\x18.\xC0\xCE\xA3\x7FR\xEA~O$\x0BLi\x13\xA0m\xE7\xF0H4\x92\xD6\xBFv\xD2\xDF3\xFCX#T\x0B\xB6\xE4XmU\xEF$\x03\xC9/\xFD\xDEf\x00\x89Prq\x1A\xB5\x13\x0CoGOn" 400 173 "-" "-" ` 我怀疑从我的服务器产生的XML-RPC攻击 ,但我不能确认,有没有办法将该代码转换为人类可读的文本?
我遇到了一些DDoS问题,尤其是XML-RPC攻击(wordpress),其中成千上万的Wordpress实例攻击我的机器。 我在我的nginx服务器块中有以下内容:if($ http_user_agent〜WordPress){return 444; } 虽然它终止了所有的wordpress连接,但它仍然会超载CPU。 这是我的服务器规格: Ubuntu 16.04 LTS – E3-1230v5,16G DDR4和SSD。 我会假设它能够处理得更多,但似乎并非如此。 我试图使用fail2ban自动阻止wordpress useragent,但是所有似乎要做的就是创build几千个iptables规则,并没有结束。 有没有更好的方法来阻止这种攻击? 谢谢。
所以我在digitalocean雾滴中安装了nginx ..到目前为止这么好。 但现在我不能得到一个引导模板来显示,我试图访问一个PNG文件,什么都没有。 进入时 curl -I http ://104.131.23.214/sites/bootstrap/img/profile.png 我得到.. HTTP/1.1 404 Not Found <br> Server: nginx/1.4.6 (Ubuntu) <br> Date: Sun, 03 Jul 2016 10:28:09 GMT <br> Content-Type: text/html <br> Content-Length: 177 <br> Connection: keep-alive <br> 当inputcurl -I http://104.131.23.214 我得到.. root@ubuntu-nginx-1:~# curl -I http://104.131.23.214 <br> HTTP/1.1 200 OK <br> Server: nginx/1.4.6 (Ubuntu) <br> Date: Sun, 03 […]
我是我的服务器上的php-fpm的nginx。 我使用SSL(Let's Encrypt)configuration了nginx,并将HTTPS设置为默认值而不是HTTP。 问题是当通过HTTP访问网页时,php文件被下载,但在HTTPS中,脚本工作。 我重新启动nginx / php清理caching,尝试其他浏览器,chmod和问题依然存在。 我使用ajenti作为控制面板,所以configuration是自动生成的。 client_max_body_size 128m; large_client_header_buffers 4 64k; add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1;mode=block"; add_header X-Content-Security-Policy "allow 'self';"; ssl_prefer_server_ciphers on; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/trustchain.pem; resolver 8.8.8.8 8.8.4.4; server { listen *:80 http2; listen *:443 ssl […]
我有一个问题天气可以configuration一个NGINX反向代理,以便它不会将videostream的每个请求都代理到后端服务器,而是打开单个连接来获取videostream并将其分发给客户端。 现在我使用下面的configuration。 server { listen 9000 ssl; server_name some.domain www.some.domain; error_log /var/log/nginx/error.cam.log; access_log /var/log/nginx/access.cam.log; ssl on; ssl_certificate /etc/letsencrypt/live/some.domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/some.domain/privkey.pem; location / { auth_basic "Login"; auth_basic_user_file /etc/nginx/auth/Somefile; proxy_pass http://XXX.XXX.XXX.XXX:9000/; proxy_http_version 1.1; proxy_buffering off; } } 每当客户端请求从NGINX服务器请求该站点时,导致新的后端到NGINX连接具有完全相同的videostream。 上图显示了传出networkingstream量:绿色= Nginx服务器,蓝色=后端服务器。 每个峰值意味着一个新的客户端访问videoMJPGstream。 所以问题是我有一个从后端到NGINX代理严格有限的性能,因为后端是一个树莓派,不能提供更多的30Mbit稳定的stream。 我已经尝试过缓冲等,但没有成功。 是否有任何方法使用单个连接到后端? 来自德国,弗洛的感谢和问候
我想要使用IETF尚未标准化的新cookie前缀 。 这些是__Secure-和__Host- 。 所以让我们来设置这个cookie(这里是服务器返回的头文件): Set-Cookie: "__Host-apple=yummy; Secure; HttpOnly; Path=/" 我想用$cookie-variables在nginx中访问这个cookie。 所以为了testing,我使用echo模块来显示cookie的值: location = /wannaeat/ { echo $cookie___Host-apple; } 然而nginx总是显示我-apple 。 它似乎使用连字符( – )拆分variables。 因为当我例如命名cookie __Host_apple (和nginxvariables$cookie___Host_apple )nginx正确显示我的值。 我知道我可以使用$http_cookie并使用正则expression式来查找正确的cookie,但这是不可能的,因为我想map cookie值。
如何设置IP地址作为服务器名称的nginx? server { listen 80; server_name xx.xx.xx.xx; location /test { root /var/www/test; } location ~ \.php$ { include /var/ini/nginx/fastcgi.conf; fastcgi_pass php; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/test$fastcgi_script_name; } } 所以我想要像这样访问服务器 http://xx.xx.xx.xx/test/ => index.php http://xx.xx.xx.xx/test/foo.php => foo.php