我对nginx相当陌生,我有一个nginx的conf脚本,它具有以下模板, example1和example2具有相同的内容,我想把这些内容放在一个函数中(像编程中的方法一样的概念),并传递参数来减less重复,是否有可能这样做? 我search了很长时间,但没有看到一个类似的东西的例子。 server { server_name test.com location ^~ /example1/ { proxy_pass http://<some-ip>/example1/; proxy_set_header blah } location ^~ /example2/ { proxy_pass http://<some-ip>/example2/; proxy_set_header blah } }
我试图从一个服务器的WordPress的网站转移到一个新的,我不想在这个过程中把我的网站。 该网站目前正在其原始服务器上运行,并通过Laravel Forge / AWSbuild立了一个新的服务器。 我打算做的是通过导航到新服务器的数字IP地址,而站点仍然通过域/原始服务器处于活动状态,以在新服务器上设置站点。 但是这不起作用。 当我尝试导航到新服务器的IP时,它会自动redirect到只将我带到我的原始服务器的域。 我想也许这是一个nginxconfiguration文件的问题,但不能看到任何内容,这将解释这种行为。 我是一个小白虽然这么张贴在这里: # FORGE CONFIG (DOT NOT REMOVE!) include forge-conf/airfrying.net/before/*; server { listen 80; listen [::]:80; server_name airfrying.net; root /home/forge/airfrying.net/public; # FORGE SSL (DO NOT REMOVE!) # ssl_certificate; # ssl_certificate_key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/dhparams.pem; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; […]
我真的以我的智慧结束了这个! 首先,似乎没有办法做LetsEncryptvalidation过程,没有使域名生活! (当你试图从一台服务器移动到另一台服务器时,这会很糟糕) 然后,我似乎无法得到极致挑战的东西工作。 这里是我的configurationnginx域主机: server { listen xxx.xxx.xxx.xxx:80; server_name test.co.uk www.test.co.uk; root /home/rachel/web/test.co.uk/public_html; # Necessary for Let's Encrypt Domain Name ownership validation location /.well-known/acme-challenge/ { try_files $uri /dev/null =404; } location / { return 301 https://$host$request_uri; } } server { listen xxx.xxx.xxx.xxx; server_name cdn.test.co.uk ; root /home/rachel/web/cdn.test.co.uk/public_html; index index.php index.html index.htm; access_log /var/log/nginx/domains/cdn.test.co.uk.log combined; […]
有没有办法使用nginx日志格式的上游名称 ,而不是用于处理请求的特定上游节点主机/ IP地址? $upstream_addr是用于特定节点的variables,当没有function节点时,将给出该组的名称。 不过,我想总是logging上游组的名称。 我在官方文档中找不到任何关于它的信息,但是可能有一个没有logging的variables,编译选项或模块,使它成为可能?
我试图得到一个重写规则为nginx和Wordpress工作。 在重新启动nginx之后,我尝试了这个站点,并得到一个IS 500错误页面。 日志文件说: *1 rewrite or internal redirection cycle while internally redirecting to "/index.php" 我很困惑,因为这是他们如何告诉你在所有的教程中(甚至是用于设置nginx的重写规则的Wordpress文档): try_files $uri $uri/ /index.php?$args ; 这是整个服务器块: server { listen 178.79.134.35:443 http2; listen [::]:443 http2; server_name foo.co.uk www.foo.co.uk cdn.foo.co.uk; ssl on; ssl_certificate /home/test/conf/web/ssl.foo.co.uk.pem; ssl_certificate_key /home/test/conf/web/ssl.foo.co.uk.key; error_log /var/log/apache2/domains/foo.co.uk.error.log error; location / { # This is cool because no php is touched […]
我正在开发一个Django应用程序,到现在为止我已经将它部署到App Engine标准环境,但是随后我开始使用Google Cloud Vision Python库,并由于一些限制,我切换到灵活环境。 我的代码在我的本地机器上用python manage.py runserver ,但是当我将它部署到App Engine时,我得到了以下内容 <html> <head> <title>502 Bad Gateway</title> </head> <body bgcolor="white"> <center> <h1>502 Bad Gateway</h1> </center> <hr> <center>nginx</center> </body> </html> 当我研究这个问题的时候,我发现我需要改变这里所说的nginx设置。 要应用的Nginx设置 # Tune nginx keepalives to work with the GCP HTTP(S) Load Balancer: keepalive_timeout 650; keepalive_requests 10000; 但我无法find办法做到这一点。 我也是后端开发的新手,所以我没有太多的经验。 这是我的app.yaml文件 runtime: python api_version: 1 threadsafe: yes env: […]
我有一个本地.ttf字体,我需要使用。 我试图编辑MIMEtypes application/x-font-truetype ttfl 也试过了 application/x-font-ttf ttf; 和mysite.conf看起来像这样: server { listen 80; server_name mysite.com www.mysite.com; location / { root /var/www/mysite.com/public_html; index index.html index.htm; try_files $uri $uri/ =404; } location ~* \.(eot|ttf|woff)$ { add_header Access-Control-Allow-Origin *; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } 但是我仍然得到404的字体。 我究竟做错了什么?
你好,谢谢你的帮助。 我search了,发现了类似的问题,但不是我所经历的。 当我尝试configurationnginx来服务我的应用程序时,我得到“太多redirect”。 这是:80服务器configuration server{ listen 80; listen [::]:80; server_name app.domain.com; location /{ # This is an acceptable config: If request went trought http, # redirect to https server if ($scheme = "http"){ return 301 https://$host$request_uri; } # This is what i REALLY want: If request went trought http (this # server is listening port […]
我维护的一个基于Django的networking论坛最近在应用层受到频繁的DDOS攻击。 本质上,它似乎是一个HTTP泛滥的主页,造成服务器执行大量的内部请求,并加载各种文件来创build页面。 洪水峰值约为每分钟4000个请求(典型的吞吐量为500转/分钟左右),导致我的服务器在这个过程中。 我的networking服务器是nginx,作为一个gunicorn应用服务器的反向代理。 我还没有使用gunicorn的安全参数: limit_request_line , limit_request_fields , limit_request_field_size )。 但是我已经安装了nginx fail2ban ,并且在我的jail.local有两个jail来确保HTTP floods被挫败: [nginx-postflood] enabled = true filter = nginx-postflood port = http,https logpath = /var/log/nginx/access.log findtime = 60 maxretry = 13 bantime = 300 [nginx-getflood] enabled = true filter = nginx-getflood port = http,https logpath = /var/log/nginx/access.log findtime = 5 maxretry = […]
我正在尝试设置一个Nginx负载平衡器,将stream量直接发送到客户端,而不是通过负载平衡器。 upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com backup; } 我发现的所有教程都在使用; server { location / { proxy_pass http://backend; } } 任何想法如何我可以存档我在找什么? 例如我想在这里存档