Questions tagged «nginx»

Nginx(“ eNgine x”)是一种轻量级的高性能HTTP服务器,反向代理,TCP流代理和邮件代理,在类似BSD的许可证下发布。

5
+200个并发连接后NGINX超时
这是我的nginx.conf(我已更新配置,以确保不涉及PHP或任何其他瓶颈): user nginx; worker_processes 4; worker_rlimit_nofile 10240; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; error_log /var/www/log/nginx_errors.log warn; port_in_redirect off; server_tokens off; sendfile on; gzip on; client_max_body_size 200M; map $scheme $php_https { default off; https on; } index index.php; client_body_timeout 60; client_header_timeout 60; keepalive_timeout 60 60; send_timeout …

6
为什么下载PHP文件而不是由Nginx处理?
我已经看到了相同的问题,并且针对它的许多解决方案都指向添加类型处理程序,但这是针对Apache的。 我正在使用Arch Linux,Nginx,PHP和PHP-FMP,但我不知道为什么要下载php文件而不是运行它。 这是我的nginx.conf: #user http; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; …
12 php  nginx  php-fpm 

1
Apache相当于Nginx的try_files是什么?
在Nginx中有try_files一个config指令,该指令“按顺序检查文件是否存在,并返回找到的第一个文件”。我觉得这样做很整洁 location ~* \.(gif|jpe?g|css|js)$ { try_files $uri 404; } 这是一种直接提供静态文件而又不影响网络框架的安全方法。我如何在Apache中做同样的事情?
12 apache-2.2  nginx 

1
日志名称中的变量-Nginx
我在nginx中具有以下默认服务器设置: # Default HTTP Server server { listen 80 default; server_name _; access_log /var/log/nginx/$server_name.access.log; error_log /var/log/nginx/$server_name.error.log; server_name_in_redirect off; location / { root domain.com/public; index index.php; try_files $uri index.php; } location ~ \.(html|jpg|jpeg|gif|png|ico|css2|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /path/to/domain.com/public; expires 30d; break; } charset utf-8; location ~ \.php$ { include /opt/nginx/conf/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index …
12 nginx 


4
基于引荐来源的不同Nginx规则
我正在将WordPress与WP Super Cache结合使用。我希望来自Google的访问者(包括所有国家/地区特定的引荐来源网址,例如google.co.in,google.co.uk等)看到未缓存的内容。 我的Nginx规则无法按照我想要的方式工作: server { server_name website.com; location / { root /var/www/html/website.com; index index.php; if ($http_referer ~* (www.google.com|www.google.co) ) { rewrite . /index.php break; } if (-f $request_filename) { break; } set $supercache_file ''; set $supercache_uri $request_uri; if ($request_method = POST) { set $supercache_uri ''; } if ($query_string) { …

2
如果PHP在Apache,Nginx或其他Web服务器上运行,如何检测?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 2年前关闭。 首先我知道这个变量: _SERVER["SERVER_SOFTWARE"] 在我的一个应用程序中,我想从PHP脚本检查运行它的Web服务器。基本上,它将是一个wordpress插件,它将帮助Blogger进行一些配置。 我为Apache&Nginx创建了单独的流程,并且还在考虑将代码作为2个不同的wordpress插件发布。 然后我只是想知道PHP中是否有一种FULLPROOF方法来完美地检测Web服务器。 请考虑所有情况:: Apache,Nginx,Apache + Nginx,PHP作为Apache模块,使用fastcgi的PHP,php-fpm,lighttpd,IIS等。 对于我的应用程序检测连击和代理的存在也很关键。 谢谢, -拉胡尔

3
使用Nginx作为主要Web服务器的缺点?
我已经看到数百万个网站使用nginx作为与Apache一起工作的代理Web服务器。但是我看到很少有服务器仅将nginx作为其默认Web服务器运行。这种配置的主要缺点是什么? 我可以看到一些: 无法使用每个目录的配置文件(例如.htaccess),因此应对主服务器配置文件进行每次配置更改,并且需要重新加载服务器。但是pecl htscanner可以补偿他们的php设置 nginx的mod_php不可用,例如可以通过php-fpm进行补偿。 还有什么 人们为什么不放弃Apache而转而使用nginx或任何其他轻量级解决方案?可能是因为某些特殊原因? 编辑:这个问题主要是关于使用LAMP堆栈。

4
旋转Nginx日志的正确方法
我想实现nginx日志的轮换: 无需任何额外的软件即可工作(即,如果没有“ logrotate”,则最好) 将根据日期创建旋转文件 最好的方法就像PostgreSQL一样-即在它的log_filename配置变量中,我可以指定strftime风格的%Y-%m-%d,它将自动更改登录日期(或时间)的更改。 Apache的另一种方法-通过管道将日志发送到rotatelogs程序。 据我所能搜索-没有这种方法。我所能做的就是将logrotate和dateext选项一起使用,但是它有其自身的缺点,我宁愿使用类似PostgreSQL中的| rotatelogs或log_filename的功能。

6
空gif(1x1 pix)文件有什么用途?
我看到一些随机页面提到使用空gif图像以某种方式提高性能。我也发现nginx有一个用于此目的的模块。我不知道的是,确切地说,如何提供这个小文件可以提高Web服务器的性能或感知的响应速度。谁能帮助我了解好处?

2
Nginx缓存符号链接
我的Web服务器上有一个部署系统,每次部署应用程序时,它都会创建一个带时间戳的新目录,并将符号“当前”链接到该新目录。这一切在apache上都很好,但是在我设置的新的nginx服务器上,看起来好像正在运行“旧”部署中的脚本,而不是新的符号链接的脚本。 我已经阅读了一些有关如何解决此问题的教程和帖子,但没有太多信息,而且似乎也无济于事。这是我的虚拟主机文件: server { listen 80; server_name ~^(www\.)?(?<sname>.+?).testing.domain.com$; root /var/www/$sname/current/public; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) { add_header Cache-Control public; add_header Cache-Control must-revalidate; expires 7d; } location ~ \.php$ { #fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME …
12 nginx  php-fpm  cache  php7 

3
Nginx使用“ service nginx start”挂起
我已经使用生产服务器的自定义路径编译了nginx,并且尝试使用以下方法启动/重新启动服务: service nginx start 要么 service nginx restart 它输入新行而不返回外壳: 所以问题是我无法使用service命令控制Nginx 。该服务实际上在运行,但是它不会将外壳返回给我,因此我总是必须按ctrl+ c才能将其取回。 我还必须提到,nginx在通过自己的nginx命令调用时运行得很好,并且可以使用轻松停止或重新加载nginx -s stop/reload。 使用该问题仍然存在systemctl start nginx,但systemctl stop nginx效果很好。 信息: $ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: wily $ uname -r 4.2.0-27-generic $ nginx -V nginx version: nginx/1.9.11 built by gcc 5.2.1 20151010 (Ubuntu …

1
如何用错误的主机头设置阻止请求?
我使用nginx服务我的网站。我想阻止所有与HTTP“主机”标头不符的请求,这些标头与我的网站的域不匹配。 更具体地说,我的nginx.conf包含以下两个服务器块: server { # Redirect from the old domain to the new domain; also redirect # from www.newdomain.com to newdomain.com without the "www" server_name www.olddomain.com olddomain.com www.newdomain.com; listen 80; return 301 $scheme://newdomain.com$request_uri; } server { server_name newdomain.com localhost; listen 80; # Actual configuration goes here... } 我想阻止(即“返回”一个444状态代码)主机不是www.olddomain.com,olddomain.com,www.newdomain.com或newdomain.com的任何流量。我怎样才能做到这一点?
12 nginx 

2
Nginx正则表达式虚拟主机模式最终以PHP服务器名称结尾
我有一个带有正则表达式匹配项的nginx服务器定义,如下所示: server_name ~^(?<vhost>[a-z0-9-]+)\.example\.com$; root /var/www/example/$vhost; access_log /var/log/nginx/$vhost.example-access.log; 一切都很好,但是,此域使用fastcgi和PHP-FPM托管各种PHP项目,它们在$_SERVER以下项中接收类似的值: SERVER_NAME => "~^(?<vhost>[a-z0-9-]+)\.example\.com$" HTTP_HOST => "myhost.example.com" 如您所见,正则表达式模式SERVER_NAME而不是匹配的字符串被放入。对我来说,这似乎有点毛病,而且还存在安全风险,因为它泄露了不必要的细节(在其他配置中,我匹配的是一组特定的名称,而不是通配符)。 您可能会说“使用HTTP_HOST而不是SERVER_NAME”(如果就这么简单),有些库希望SERVER_NAME(毫无意外)包含服务器的名称。我真的看不到这种行为的好用例。
12 nginx 

2
Nginx:将IP地址重定向到域名
使用以下Nginx配置: server { listen 80; listen [::]:80 default_server ipv6only=on; server_name isitmaintained.com; ... } server { listen 178.62.136.230:80; server_name 178.62.136.230; add_header X-Frame-Options "SAMEORIGIN"; return 301 $scheme://isitmaintained.com$request_uri; } 我试图重定向http://178.62.136.230/到http://isitmaintained.com/,但是当我部署此配置时,我最终得到了一个Redirect loop或两个链接。 我究竟做错了什么?
12 nginx  redirect 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.