我有一个Nginxconfiguration307redirect从http到https。 现有的客户端应用程序连接到http并通过POST请求发送数据。 客户端是使用HttpWebRequest的.Net服务。 只需使用301redirect结果就可以从请求中删除POST数据。 我有我的本地testing环境中工作的307redirect,但是当部署到生产服务器的redirect消息被损坏,客户端抛出exception。 这是我在testing环境中得到的工作响应: 这就是我从生产环境中得到的 你可以看到数据包看起来不同,可能会导致不同的响应? 旧版本的nginx?
使用NGiNX,我得到一个string,其中包含我可以用正则expression式提取内容的信息。 但是,我发现我能做到这一点的唯一方法就是如果封锁。 还有别的办法吗? 提取的值需要设置在一个variables中。
我有这个全面的: server { listen 80 default_server; server_name _; return 444; } 现在,假设我们有两个称为1.2.3.4和1.2.3.5 IP。 那么我们假设1.2.3.4在example.com , 1.2.3.5在configuration文件的任何地方都不会使用。 基本上只有第一个IP被使用。 其他IP为空白/空白/空闲。 好的,这是问题所在。 上面的服务器块正在使用1.2.3.5 。 因为这个IP永远不会用于任何服务器块。 这是免费的。 分配给服务器。 它回应。 但从未用于任何网站。 listen 80; 指令只适用于1.2.3.5 。 另一方面, 1.2.3.4不起作用。 Nginx不听这个IP。 因为它被一个服务器块使用。 我testing了自己。 不过,Nginx拒绝听这个由ngnix服务器块使用的Ips 现在,如果我改变listen 80; listen 1.2.3.4:80然后我为这个IP工作。 基本上, Nginx不允许我监听使用的IP地址作为默认的catch-all。 我只是想抓住每一个来自我的服务器的不属于我的虚假域名。 我想通过假主机禁用用户。 但是我真的需要写每个IP来听吗? 有没有解决办法? 任何帮助? 编辑1 :我也试过listen *:80; 其中有通配符。 没有工作。 编辑2 :如果我从听指令中删除所有的IP,只留下端口,它的工作原理。 但是,我们是不是把ip地址放在listen指令上? […]
这是我们在ubuntu 12.04服务器上加载nginx的错误: nginx: [emerg] invalid number of arguments in "location" directive in /opt/nginx/conf/nginx.conf:58 我们要做的是在input的uri末尾添加一个string。 例如,如果inputmysite.com/abcd或mysite.com/abcd/ ,则nginx应将其rewrite为mysite.com/abcd/auth/signin 这里是我们在nginx.conf : location { rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last; rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last; } } 上面的位置块有什么问题,我们应该如何命名位置块? 谢谢您的帮助。 更新: 这里是nginx.conf中的server块: server { listen 80; server_name mysite.com; root /var/www/; passenger_enabled on; rails_env production; passenger_base_uri /nbhy; … }
我有以下位置处理我的资产: location ~ \.(?:css|js|jpe?g|png) { root /var/static; } 所以,如果一个请求是 www.example.com/img/file.png file.png将被取消 /var/static/css/file.png 这是正确的。 但在某些情况下,我需要处理以下请求: www.example.com/css/file1.png 从img目录中取出 /var/static/img/file1.png 我应该如何改变我的位置?
现在,我使用下面的代码在我的nginxconfiguration中将所有HTTP URLredirect到HTTPS: server { server_name domain.com listen 80; location /asset/ { # make files under asset directory (recursively) be available over HTTP too } location / { rewrite ^ https://$server_name$request_uri? permanent; } } 如何使资产目录下的文件(recursion)通过HTTP可用?
我最近使用nginx设置了一个虚拟主机。 托pipe的网站需要将包含'/old/'urlredirect到没有'/old/'url。 例如: www.mywebsite.com/old/a/b/c to www.mywebsite.com/a/b/c www.mywebsite.com/old/a to www.mywebsite.com/a www.mywebsite.com/old/a/b/c/d/e to www.mywebsite.com/a/b/c/d/e 任何人都可以指向正确的方向吗? 干杯
我无法从NGINX中的URL中获取子域名。 这是我的configuration: server { listen 80; server_name ~^(?<appname>)\.example\.com$; rewrite ^ https://$appname.example.com$request_uri? permanent; } 当我做: http://bob.example.com/ 我被发送到: https://.example.com/ 我不知道我做错了什么。 我正在使用NGiNX 1.2.7。 我有另一个configuration: http://example.com/ 所以我有一个服务器块的域没有子域和第二个与子域…这是关于子域。 UPDATE 这里的redirect(这是我试图提取子域的原因): server { listen 443 ssl; server_name ~^(?<appname>)\.example\.com$; ssl on; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.key; root /var/www/example.com/apps/$appname/; include /var/nginx/general/php; include /var/nginx/general/upload; include /var/nginx/general/error_page_50x; } 新的更新 我得到的新错误(这是没有P): 2013/06/30 00:49:02 [error] 7707#0: *64 directory […]
我来找你,因为我在我的托pipe上面临着一个非常奇怪的影响。 我目前pipe理一个服务器NGINX / PHP-CGI和wordpress多站点。 我的网站是使用subsite.domaine.tld创build的,现在,我的三个子网站都可以通过url正确访问: subsite.domain.tld. 我的目标是允许我的主机域上的子网站通过各自独特的域进行访问。 举个例子: www.domainA.com would redirect to subsite1.host.domain.tld. 如果我在domainA Public DNS上使用以下设置: www 10800 IN CNAME subsite1.host.domain.tld. 当我尝试访问www.domainA.com时,我不去subsite1.host.domain.tld,而是redirect到创build我的networking(host.domain.tld)的Wordpress ROOT站点。 有处理的伎俩吗?
我只需要在两台服务器上使用通配符域名的httpsconfigurationnginx的帮助。 我们有通配符域让我们称之为* .mydomain.com 我们目前有一个服务器shop.mydomain.com,这是与通配符证书正常运行。 我们现在要做的是build立一个名为club.mydomain.com的社区网站,并从一台新机器上运行。 我只是从现有的服务器复制现有的.crt和.key文件,并将其复制到新的机器,并相应地调整我的域名? 可能的考试…. server { listen 443; server_name club.mydomain.com ssl on; ssl_certificate /etc/ssl/certs/mydomain.com.crt; ssl_certificate_key /etc/ssl/private/mydomain.com.key; } 或者是有某种types的SSL密钥相关的东西,我必须做的? 谢谢 史蒂夫