我使用nginx作为web前端和apache2作为web后端。 Apache在本地运行多个网站,nginx访问它们。 目前,不同的子域是托pipe,但我想要迁移到一个单一的使用http://my-single-domain.com/subdomain-alias感谢nginx。 每个子域的根目录和apache2 vhost端口是不同的(听起来很明显,不是吗?)。 我尝试了几种configuration,但是我无法获取正在发送的资源,即发送了索引html,但服务器( 404 Not Found )找不到资源,尽pipe设置了规则root 。 我尝试了几个解决scheme,如: location /alias1 { proxy_pass http://127.0.0.1:9095/; include /etc/nginx/proxy.conf; } 要么 location /alias1 { alias /alias1/; proxy_pass http://127.0.0.1:9095/; include /etc/nginx/proxy.conf; } 甚至 location /alias1/ { rewrite ^/alias1(/.*)$ $1 break; proxy_pass http://127.0.0.1:9095/; } 或再次 location /alias1/ { rewrite ^/alias1(/.*)$ $1 break; proxy_pass http://127.0.0.1:9095/; proxy_set_header Host $host; […]
如何在Nginx中只启用一个virtualserver服务器的xdebug? 在Apache中,我可以通过.htaccess(“ php_value xdebug.remote_enable On ”)进行configuration。
我有一个奇怪的nginxcaching行为。 有2个回应。 第一个已经停止caching,当我更新服务器从1.6到1.8.1,另一个caching像以前一样。 第一个(破碎)有以下响应标题: 允许→GET,HEAD,OPTIONS 连接→保持活动 内容编码→gzip 内容 – 语言→ru 内容types→应用程序/ JSON date→2016年3月15日星期二07:31:53 GMT 服务器→nginx / 1.8.1 传输编码→分块 变化→ 接受,接受 – 语言,Cookie,接受编码 X-Frame-Options→SAMEORIGIN 另一个响应(按照我的预期工作)有以下标题: 连接→保持活动 内容编码→gzip 内容 – 语言→ru 内容types→应用程序/ JSON date→2016年3月15日星期二07:32:40 GMT 服务器→nginx / 1.8.1 传输编码→分块 变化→ 接受语言,Cookie,接受编码 X-Frame-Options→SAMEORIGIN 在第一种情况下没有cookie或Accept标头,但是只有 proxy_ignore_headers Vary 保存了这个情况。 它适用于它。 看起来像一些魔术。 但是,什么是错的,我错过了什么? 以下是当前设置: proxy_pass http://localhost:7050; proxy_set_header Host $http_host; proxy_set_header X-Real-IP […]
如http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive中所述 应特别注意的是,keepalive指令不会限制Nginx工作进程可以打开的上游服务器的连接总数。 连接参数应设置为足够小的数量以允许上游服务器处理新的传入连接。 我想了解一个新的客户端是否来了,为什么他们不能使用现有的保持连接? Nginx是否需要在每次新客户端时都与上游build立新的连接?
我无法让我的networking服务器(nginx)与php-fpm一起工作。 页面不断加载,然后加载时间到期。 我希望你们其中一位能帮我解决这个问题。 我已经导出了我的活动iptables规则,希望能够弄清楚什么是错误的。 Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 9962 1071K fail2ban-ssh tcp — any any anywhere anywhere multiport dports ssh 0 0 ACCEPT all — lo any anywhere anywhere 9982 1106K ACCEPT all — any any anywhere anywhere state RELATED,ESTABLISHED 439 25076 […]
我有一个Amazon ELB,它监听http和httpsstream量。 它后面的实例在端口80上有nginx。仅Http。 所以ELB将https和http转发给nginx的http。 当我向https://example.com/folder等文件夹发送https请求时,会自动将其redirect到斜杠版本http://example.com/folder/,但协议将变为http。 文件夹包含index.html文件。 我认为这是它的工作原理。 有没有什么办法解决这一问题? 即使redirect到https而不是http。 我无法在全球执行https。 我的configuration: http { map $http_x_forwarded_proto $thescheme { default $scheme; https https; } server { listen 80; server_name example.com; location / { root /var/www/html; add_header X1 $scheme; add_header X2 $thescheme; index index.html; } } } 我已经添加了X1和X2头来检查nginx认为使用什么协议,以及ELB是否添加了X-Forwarded-Proto头。 X1是http,X2是示例请求的https。 我发现添加 if (-d $request_filename) { rewrite [^/]$ $thescheme://$http_host$uri/ permanent; […]
好吧,这个任务应该是简单的,但我不能得到它的工作。 我想在我的域名(实际上在该域名的IP之后)有一个子文件夹,该子文件夹redirect到同一台服务器上的特定端口。 本质上,我想摆脱必须使用许多端口。 这是我的nginxconfiguration server { listen 80; index index.html index.htm index.nginx-debian.html index.php; server_name aaa.bbb.ccc.ddd; location ^~ /app2 { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://aaa.bbb.ccc.ddd:8001; } } 所以在访问aaa.bbb.ccc.ddd / app2我想这个解决http://aaa.bbb.ccc.ddd:8001 。 这可能会注意到可能是如此复杂。 我在这里错过了什么? 谢谢你
类似这个和这个问题,我想阻止用户使用IP访问我的服务器。 对于HTTP(端口80),这工作正常,但不适用于HTTPS。 所以用户仍然可以inputhttps://<myip>访问networking服务器,nginx返回默authentication书。 顺便说一句,我在我的“通常的”服务器块(使用我的域名)使用HTTP2,所以我使用: listen 443 ssl http2; listen [::]:443 ssl http2; 我现在试图阻止HTTPS的IP访问: server { listen 443 ssl; listen [::]:443 ssl; server_name _; return 444; } 但不幸的是,这封锁了所有的HTTPS请求,无论域是否被使用。 我知道可能有必要阻止非SNI客户端,因为这些客户端当然不会将使用的域名提供给服务器,所以我没有问题。 (我的意思是不支持SNI的客户是老的…) 我通常宁愿在nginx中阻止这个,但是如果你有一些关于在防火墙级别(iptables)阻止的想法,我也会很高兴的赞赏这些。 如果你想争论为什么使用iptables阻塞更好,你也可以做到这一点,并说服我也阻止对IP的HTTP [或所有其他]请求。 一般来说,删除连接是好的(如nginx状态码444)。 但是有一个要求:我不想在configuration中明确地提到服务器的IP地址,因为它是一个dynamicIP,服务器使用dynamicDNS服务。 所以总之,这就是我想要达到的目的: 通过IP阻止访问 允许通过域名访问 阻止非SNI客户端是很好的 为此使用防火墙阻塞是很好的 丢弃连接是好的 而不提及服务器的IP地址 不通过HTTPS暴露域名 编辑:另一个失败的尝试。 我试图按照这个build议 ,使用这个configuration片段,这似乎是一个好事: if ($host != "example.com") { return 444; } 它也基本上工作,但是当我访问“https://”我看到,nginx起初已经发送HTTPS证书(包含域名),只有当我跳过连接警告,我看到它阻止访问。 这是合乎逻辑的,因为nginx只能在有HTTPS连接的情况下读取主机头,但此时nginx已经发送了包含域名的服务器证书,所以用户现在拥有域名并可以使用它重新连接,使整个IP阻止无用。 […]
我需要在Ubuntu 16.04上为Nginx 1.10和PHP-FPM 7增加允许打开的最大文件数量。 根据一些教程,我改变了/etc/security/limits.conf中每个用户打开文件的最大数量 * soft nofile 64000 * hard nofile 68000 我还在/etc/sysctl.conf中更改了整个系统的最大打开文件数 fs.file-max = 200500 重新加载我的虚拟机后,我检查了用户login到系统的软硬限制 igor@ubuntu:~$ ulimit -Sn 64000 igor@ubuntu:~$ ulimit -Hn 68000 如您所见,限制适用于用户。 我的问题是,我不能改变Nginx和PHP的限制 igor@ubuntu:~$ sudo ps aux|grep nginx root 1124 0.0 0.0 45988 980 ? Ss 01:04 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 1125 0.0 […]
我有这个奇怪的问题,我不明白。 我使用EE引擎脚本在linode上使用NGINX安装wordpress博客。 这在过去运作良好。 该脚本为我的域名(我们称之为example.com)安装一个VHOST,并在/ etc / nginx / sites-available的最终结果是: 默认 example.com 22222(pipe理工具,这些都不是问题) 问题 : 在林德设置DNS后,一切似乎工作正常。 Example.com拉起WordPress博客没有问题。 但是,在我的办公地点,NGINX会恢复到默认状态! …所以,在家里和其他地方,没有问题,而在其他一些地方(如办公室),NGINX会给我默认的index.xxx(NGINX是工作信息)。 同样的,笔记本电脑,相同的浏览器,一切,但不同的解决scheme,取决于我在哪个物理位置。 解决scheme1: 强制NGINX通过在configuration中使用default.com来使用example.com。 这是有效的,但是它不应该成为解决问题的方法,因为NGINX应该抓住域名并提供正确的网站。 我还有什么可以信任它,以便在将来设置更多网站时提供正确的页面? 解决scheme2: 文件:etc / nginx / sites-enabeled / default有以下几行: # Default server configuration # server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # …… 每当我发表第二条听取指令时,即: listen [::]:80 default_server; 而我离开第一个,然后NGINX正确parsing我的域名,而/ etc […]