Articles of nginx

NginX子域名

在迁移服务器上工作,并没有运气设置我的子域。 我正在寻找的行为相当简单: www.domain.com&domain.com – > / var / www / live / * .domain.com – > / var / www / * /(假设子目录存在,否则redirect到主站点) 我已经尝试在几个configuration使用$主机,我已经尝试使用许多变化: server_name ~^(.*)\.domain\.com$; root /var/www/$1; 和 server_name ~^(?<subdomain>.+)\.domain\.com$; root /var/www/$subdomain ; 这是基本的NginX行为,但我完全难住,我浪费了太多的时间试图破解我的方式通过这个。 任何人都可以解释一下这个解决scheme吗? 提前致谢!

使Tomcat使用X-Real-IP

我将nginxconfiguration为Tomcat 7之前的反向代理。我将以下几行添加到了nginxconfiguration中: set_real_ip_from 127.0.0.1; … location / { proxy_pass http://tomcat; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 但是,我仍然在Tomcat中看到以下图片: 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=6C1B02376C5F748C509B28FC7CE416C9 HTTP/1.0" 200 10571 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=0BBE0174C1F0E94FDF49610144E809D3 HTTP/1.0" 200 10571 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=AD48005AD453F3A0BE46F1AC978F145D HTTP/1.0" 200 10571 有没有办法强制Tomcat使用X-Real-IP头(并将其写入日志文件), 而无需修改 Web应用程序?

Nginx与www和没有www

我有一个nginx的服务器指令: server { listen 80; server_name mydomain.net; root /home/sites/mydomain.net; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/sites/mydomain.net$fastcgi_script_name; fastcgi_index index.php; } } 这在我访问mydomain.net时效果很好。 但是,如果用户尝试使用www.mydomain.net,那么这里没有任何东西说要应用这些东西 我所做的search显示,有一个完整的其他指令,用server_name www.mydomain.net监听,看起来不是很好。 例如 server { listen 80; server_name www.mydomain.net; root /home/sites/mydomain.net; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/sites/mydomain.net$fastcgi_script_name; fastcgi_index index.php; } } 基本上加倍configuration代码。 或者以其他方式进行重写。 有没有这样做的较less的方式?

Nginx错误声明连接拒绝PHP-FPM端口

在Ubuntu 14.04 x64上新build一个运行PHP-FPM的LEMP栈。 试图访问我的webroot一些PHP。 浏览器显示502坏网关和Nginx错误日志显示以下(我的IP和生产IP删除): TIME [error] 22838#0: *7 connect() failed (111: Connection refused) while connecting to upstream, client: [my personal IP], server: [production server IP], request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "[production server IP]" 要确定PHP-FPM是否正在运行,请执行: ps -waux | grep php5 我回过头来回答: root 22930 0.0 0.4 327432 16324 ? Ss 10:10 0:00 php-fpm: master […]

NGINX代理传递给NodeJS App:返回502错误

我试图设置NGINX作为我的NodeJS应用程序,它是住在127.0.0.1:3000的前端,但我无法解决这个502错误。 NGINX可以在本地访问http://dev.example或http://dev.example dev.example(文件位于:/ etc / nginx / sites-available和符号链接到启用网站) upstream up_dev.example { server 127.0.0.1:3000; } server { listen 0.0.0.0:80; server_name dev.example example; access_log /var/log/nginx/dev.example.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://up_dev.example/; proxy_redirect off; } } error.log中 2014/09/17 19:38:26 [error] 1679#0:* 1 connect()失败(111:Connection refused)连接上游时,客户端:55.55.55.1,server:,request:“GET / HTTP / […]

打到nginx状态时绕过本地主机上的SSL

我有一个/nginx_status的位置,我昨晚安装了一个SSL证书。 server { listen 443; … location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } 当它仍然在端口80上时,这是正在工作的pre-cert安装。现在,我有redirect到位redirectwww.domain.tld和domain.tldstream量到https server { listen 80; server_name domain.tld; return 301 https://domain.tld$request_uri; } server { listen 80; server_name www.domain.tld; return 301 https://domain.tld$request_uri; } 我正在使用graphdat-relay来监视nginx的统计信息,现在curl http://127.0.0.1/nginx_status只是得到redirect页面例如 <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.6.2</center> </body> </html> 如何告诉nginx绕过SSL并仅允许/ […]

我如何检查服务器令牌是否closures?

我们从我们的pentest报告中得到反馈,说我们应该closures服务器令牌。 这是阻止人们能够看到我们正在使用哪个版本的PHP,并限制他们针对特定PHP版本的能力。 我已经添加了下面的nginx.conf,http块: server_tokens off; 但是,我可以使用什么工具来检查此更改是否已经生效?

NGINX Proxy_Pass删除url子string

我有一个NGINX作为反向代理。 我需要从URL中删除子串string_1,其余的URL是可变的。 例: Origin: http://host:port/string_1/string_X/command?xxxxx Destination: http://internal_host:port/string_X/command?xxxxx nginx.conf: location /string_1/ { proxy_pass http://internal_host:port/$request_uri$query_string; 谢谢, @pcamacho

在重启NGINX进程时排空连接?

我在CentOS 6和7上使用NGINX 1.8.1。在部署期间,要求NGINX停止,部署执行,NGINX再次启动。 不幸的是,NGINX在一个站点似乎只有500个连接。 由于我一次使用Ansible来更新2/10个主机,因此很可能在我们的整个部署过程中,我们的许多客户将获得500个主机。 有没有办法通过NGINX设置让NGINX进程耗尽所有活连接(即等待它们完成),同时在停止期间拒绝所有新连接? 我知道亚马逊的弹性负载均衡器确实有这个function ,那么NGINX有没有相同的function?

访问日志(来自nginx)减慢网站?

如果你的networking服务器(在我的情况下,nginx)写入访问日志,是否会减慢网站速度? 我主要想知道是否明显。 另外,知道已经访问过的用户代理/ ips有什么意义?