我在我的网站上设置了一个子域,它使用nginx和以下服务器configuration来托pipe一个Flask应用程序。 这是DigitalOcean上的一个液滴托pipe。 server { listen 80; server_name subdomain.mysite.com; location / { proxy_pass http://0.0.0.0:8080; proxy_redirect http://0.0.0.0:8080 http://subdomain.mysite.com; } } 我试图在我的应用程序中获取访问者的IP,但IP地址似乎是相同的,无论访问者。 我不是这个领域的专家,所以如果有人能解释发生了什么事情,以及如何获得访问者的真实IP地址,那将是非常好的。
现在有一段时间了,nginx给了我这个警告: nginx: [warn] could not build optimal variables_hash, you should increase either variables_hash_max_size: 1024 or variables_hash_bucket_size: 64; ignoring variables_hash_bucket_size 然而,在我的configuration的http块我有这样的: http { # More config… variables_hash_max_size 1024; variables_hash_bucket_size 64; # More config… } (增加到更高的值也不能解决它!我也运行nginx -T并检查这些键是否设置为不同的值,他们不是!) 我如何解决这个问题? (如果需要,我会发布更多的configuration,我只是不确定哪些部分是相关的。)
我是nginx系统的新手,但是对于一切来说都是第一个。 经过三天的尝试和失败之后,我终于在从Apache迁移到nginx后,在Wordpress页面上find了解决404错误的解决scheme。 正如我使用HTTPS / SSL,我不得不添加下面的代码行到每个网站的/location block ,在snginx.conf ,而不是良好的'醇nginx.conf try_files $uri $uri/ /index.php?$args; 手动添加一个网站并不是一件痛苦的事情,但是必须为添加到服务器的每个网站添加一个负担。 因为这是我的服务器上每个Wordpress网站所需的一行,所以我想知道如何编写一段代码,并将它应用于snginx.conf中的每个server { location / {…} } ? 假设它对非wordpress(即非PHP)网站没有任何影响,因为我的服务器只包含普通的HTML和Wordpress-PHP网站。
我使用Nginx作为清漆之前的SSL终结者。 后端是litespeed。 我有两个使用HTTPS协议的wordpress网站。 我在我的基础设施前面有一个Haproxy,它只通过SSLstream量到Nginx。 我的一个网站加载速度很快,当我通过萤火虫检查caching项目的状态时,一切都会得到'HIT',如.js .css和域名:domain1.com。 当我检查这些项目的第二个WordPress的网站,.js和HTML文件得到“MISS”相同的域名domain2.com。 两个网站的Nginx和Varnish和后端的configuration是一样的。 我也禁用了所有的插件以及我认为会影响caching的插件:WP最快caching,404至301,Broken Link Checker以及其他一些插件。 唯一的区别是,第二个网站有一个机器人,收集来自其他网站的新闻,并把他们放在网站(某种networking爬虫)。 是什么原因导致清漆cachingcaching在第二个网站上的一切? 编辑: 我添加了未被高速caching的请求的清漆日志: varnishlog -g request -q "ReqUrl ~ '/wp-content/themes/farda/js/jquery.min.js'" * << Request >> 149 – Begin req 148 rxreq – Timestamp Start: 1499626236.025652 0.000000 0.000000 – Timestamp Req: 1499626236.025652 0.000000 0.000000 – ReqStart 192.168.1.108 57470 – ReqMethod GET – ReqURL /wp-content/themes/farda/js/jquery.min.js – […]
我得到redirect循环/无尽的链,我无法弄清楚。 我很新的编程和服务器,所以请帮助一个非常绿色的人! 这是我到目前为止: 的.htaccess <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Handle Front Controller… RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> 路线 Route::get('/', [ 'as' => 'get.site', 'uses' => 'SiteController@getHome' ]); 调节器 public function getHome() { $this->model['title'] = 'Home Page'; $this->model['description'] = 'Welcome to my home Page'; return […]
pipe理帐户凭证和SHA256机密并将其提供给systemd托pipe服务的最佳做法是什么? 在旧的init.d方式中,我只是在/ etc / default中安装一个脚本来源。 从那里我可以导入我想要的任何内容到环境variables中,然后可用于我的服务。 所以我的问题是,为系统pipe理服务提供loginID /密码凭证和其他“秘密”是什么被认为是“最佳做法”? 是通过一个被认为是“好”的环境,还是有一个更好的/更安全的方式? (即什么是最好的地方,把你的服务(如MySQL)的密码,SHA256秘密等,以及如何最有效地沟通那些长期运行的后台服务需要它?有没有比在环境中设置更好的pipe理方式系统启动进程之前?)
我的应用程序生成dynamic内容,我尝试使用浏览器caching来caching它们。 所以,如果我尝试添加到我的服务器块下面: location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; } Nginx不再将请求传递给后端来生成资产,并且以http status code 404 相反,添加以下2个条件可以解决我的问题(从这个问题中得出): location / { if ($upstream_http_content_type ~ "(image/jpeg)|(image/png)|(image/gif)|(image/svg+xml)|(text/css)|(text/javascript)|(application/javascript)") { expires 90d; } if ($sent_http_content_type ~ "(image/jpeg)|(image/png)|(image/gif)|(image/svg+xml)|(text/css)|(text/javascript)|(application/javascript)") { expires 90d; } try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /site.php/$1 last; } location ~ ^/(site|site_dev|admin|admin_dev)\.php(/|$) { # it's PHP that generates some […]
我在单独的文件夹中运行了几个SPA以及一些静态文件。 结构如下: | |- index.html |- foobar.html |—- SPA1/ | |- index.html | |—- SPA1_1/ | |- index.html |—- SPA2/ |- index.html 预期的行为是: 所有/SPA1/SPA1_1/foo/bar与SPA1/SPA1_1/index.html 用SPAx/index.html服务所有的SPAx/foo/bar 用/index.html服务/not_exist 用/foobar.html提供/foobar.html 总之,我希望nginx按顺序尝试以下path: $uri $uri最亲密的父母 有没有什么办法可以达到这个目的而不需要为每个SPA目录指定规则?
有没有一种方法,我可以允许访问目录只有当某些自定义标题存在,并且值匹配? 用Apache,我一直在用SetEnvIf来做。 我怎么能用nginx做到这一点? 基本上我有一个应该只能由我访问的开发服务器,但我有dynamicIP,每天都必须更改configuration文件。 使用apache,我只是设置我的浏览器发送一个自定义的头,就像一个访问密码,如果该头的值是正确的,Apache将允许访问。
我正在使用nginx 1.10.3来运行joomla 3.7.3,并且在清除尾部斜线时遇到了问题。 我打开了“search引擎友好的URL”,以及“使用URL重写”。 我在我的nginx conf文件中有这些东西: server { listen 80 default_server; listen [::]:80 default_server; root /var/www/folder; index index.php index.html index.htm default.html default.htm; rewrite ^/(.+)/$ /$1 permanent; server_name 000.000.00.000; server_name_in_redirect off; location / { try_files $uri $uri/ /index.php?$args; } location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { return 403; error_page 403 /403_error.html; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass […]