Questions tagged «nginx»

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

1
Nginx学习资源[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 2年前关闭。 我想学习Nginx(我正在尝试在Linux上设置Nginx + Thin(s)Rails解决方案)。我知道俄语,但是原始的nginx文档对我来说有点难以理解。请提供有关Internet上可用资源(博客,社区Wiki等)的建议。 谢谢。
9 nginx 


1
安全组(在AWS上)和iptables之间的区别
我只是设置一台服务器,想知道是否需要两次设置防火墙。例如,我有一个具有以下打开端口的安全组:80、443、22 现在,我用UFW(iptables的前端)设置服务器。我是否必须在这里再次设置我的端口,或者只在没有安全组或两者都在iptables中设置它? 有区别或优点/缺点吗?

4
如何为apache和nginx服务的所有404页添加无缓存标题?
切换到Cloudflare后,我最近遇到了一个问题,解决方案是基本上停止Cloudflare缓存404响应。 在我们的负载均衡的多服务器设置中,偶尔会出现404错误,但它们会通过rsync(通过lsyncd)快速修复。在Cloudflare之前,随着rsync的工作,对404ed文件的重新请求很快就会变成200。 但是,由于Cloudflare基于缓存标头缓存所有数据,而apache和nginx均未发送404的不缓存标头,因此Cloudflare最终将404响应缓存了一段时间。 我一直在寻找一种解决方案,以便在apache和nginx中(全局地,对于所有托管域)为404s全局添加这样的标头,但到目前为止,它还是空白。 有人可以帮忙吗? 谢谢。

4
无法重新启动nginx,bind()失败(98:地址已在使用中)
我知道此主题以各种不同的形式存在,但是我无法解决自己的问题。如果我运行service nginx restart,nginx失败,并显示以下日志: 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed …
9 ubuntu  nginx 

2
Nginx本地回退错误页面(如果代理目标不可用)
我正在通过Nginx服务器将请求转发到本地服务。我现在尝试完成的工作是在服务不可用的情况下回退到本地错误页面。 我当前的配置是 server { listen 80; server_name ""; location / { proxy_pass http://127.0.0.1:9080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 1; proxy_next_upstream error timeout http_500 http_502 http_503 http_504 http_404; proxy_intercept_errors on; } error_page 501 502 503 @maintenance; location @maintenance { root /locust/www/fallback/htdocs; index index.html index.htm; } } …
9 nginx  proxy 

2
nginx:为什么我不能将proxy_set_header放在if子句中?
使用此配置: server { listen 8080; location / { if ($http_cookie ~* "mycookie") { proxy_set_header X-Request $request; proxy_pass http://localhost:8081; } } } 重新加载Nginx服务时出现此错误: Reloading nginx configuration: nginx: [emerg] "proxy_set_header" directive is not allowed here in /etc/nginx/conf.d/check_cookie.conf:5 nginx: configuration file /etc/nginx/nginx.conf test failed 此配置可以正常运行,但不能满足我的要求: server { listen 8080; location / { proxy_set_header …

2
即时修改nginx代理的数据
我有一个Nginx设置,可以接收来自外部主机的请求并将它们代理到内部服务器。 配置看起来像这样: server { listen 10.0.0.66:443; server_name my.example.com; root /websites/my.example.com ssl on; ssl_certificate /websites/ssl/my.example.com.crt; ssl_certificate /websites/ssl/my.example.com.key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; location / { proxy_pass https://10.0.0.100:3000/; } } 出于实验/测试目的,我希望能够通过任意二进制文件运行内部主机答复的内容,并以二进制文件响应的内容进行响应。 对于例如,如果我想压缩HTML在代理我会贯穿htmlcompressor服务器的响应,然后发送输出作为代理的响应给客户端。最终结果将是最终客户获得缩小的html。 我知道nginx有各种各样的插件和示例来完成本地提供的数据,但是如何为代理设置它呢?

1
Nginx。服务器指令继承。
有什么办法可以减少结构,例如: server { server_name regular_site; location /api/ { proxy_pass 127.0.0.1:5000; } location / { proxy_pass 127.0.0.1:3000; } } server { server_name mobile_site; location /api/ { proxy_pass 127.0.0.1:5000; } location / { proxy_pass 127.0.0.1:3001; } } 至 server api { location /api/ { proxy_pass 127.0.0.1:5000; } } server extends api { …

8
Nginx phpmyadmin登录后重定向到/而不是/ phpmyadmin
我在nginx上安装phpmyadmin时遇到问题。 当我输入<ServerIP>/phpmyadmin并登录时,我被重定向到<ServerIP>/index.php?<tokenstuff>而不是<ServerIP>/phpmyadmin/index.php?<tokenstuff> Nginx配置文件: user nginx; worker_processes 5; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 2; #gzip on; include /etc/nginx/conf.d/*.conf; …

2
NGINX的“全球”位置
是否可以为NGINX服务器创建“全局”位置?我希望NGINX服务的每个站点都可以访问/ global /文件夹;遵循 http { [...stuff...] #Global path location /global/ { root /my/global/location/; } server { listen 127.0.0.1:80; server_name example.com; [...standard config...] } server { listen 127.0.0.1:80; server_name example.org; [...standard config...] } server { listen 127.0.0.1:80; server_name example.net; [...standard config...] } } 并能够从http://example.com/global/ http://example.org/global/等访问全局位置的文件。 如果将全局位置块添加到每个server块中,则可以执行此操作,但这很烦人,我想在全局范围内对其进行定义,并能够从站点内部进行访问。 我可以include在每个主机中使用一个指令,但是它仍然需要每个主机中的规范。NGINX Wiki表示“位置”块仅在server上下文中有效,但我不知道是否存在重写技巧或类似内容。
9 nginx 

5
如何在一台虚拟服务器上使用ssl_verify_client = ON并在另一台虚拟服务器上使用ssl_verify_client = OFF?
我想强制对我的虚拟主机进行ssl客户端验证。但是出现“未发送必需的SSL证书”错误,试图从中获取某些信息。 这是我的测试配置: # defaults ssl_certificate /etc/certs/server.cer; ssl_certificate_key /etc/certs/privkey-server.pem; ssl_client_certificate /etc/certs/allcas.pem; server { listen 1443 ssl; server_name server1.example.com; root /tmp/root/server1; ssl_verify_client off; } server { listen 1443 ssl; server_name server2.example.com; root /tmp/root/server2; ssl_verify_client on; } 第一台服务器回复200个http代码,但第二台服务器返回“ 400 Bad Request,未发送所需的SSL证书,nginx / 1.0.4”。 可能在同一IP上使用ssl_verify_client是不可能的吗?我应该将这些服务器绑定到不同的IP,这可以解决我的问题吗?
9 nginx  ssl  web 

2
nginx:“ server_name”解析顺序?
我的nginx.conf中有多个“服务器”块。该文档对于server_name匹配发生的顺序似乎是错误的。 我的conf看起来像这样: server { listen 80 server_name domain.com *.domain.com # do stuff } server { listen 80 server_name sub.domain.com *.sub.domain.com # do something else } 我试图找出为什么host = www.sub.domain.com的请求将转到正确的位置(第二台服务器),而文档表明它应该转到第一台服务器。 Nginx文档指示已按顺序检查服务器块是否匹配,这意味着对主机* .sub.domain.com的任何请求都应由第一台服务器而不是第二台服务器捕获。(http://wiki.nginx.org/HttpCoreModule#server_name) 此外,*通配符匹配任意数量的子域部分,因此* .domain.com匹配www.sub.domain.com。(http://nginx.org/en/docs/http/server_names.html#wildcard_names) 如果此文档有误,实际的匹配顺序是什么?
8 nginx 

2
如何使用Nginx使用自己的证书设置多个子域?
除非我已阅读的每个答案都是错误的,否则SNI应该使我可以做自己想做的事情,但是每本指南都告诉我要做我正在做的事情。 但是nginx提供的证书错误,因此我显然做错了。 ❯ sudo nginx -V | grep SNI %1 nginx version: nginx/1.10.3 built with OpenSSL 1.1.0f 25 May 2017 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-qJwWoo/nginx-1.10.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/ngi nx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fa stcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi …
8 nginx  ssl  sni 

1
为Nginx使用多个密码文件
server我的配置中有多个块,所有块都使用与相同的文件auth_basic_user_file。现在,我们开始与一些外部员工一起工作,我们想在其中一个server街区中添加一些额外的用户,同时也保留原始的用户。尽管文档中没有说明,auth_basic_user_file但不允许使用多个。 有没有一种方法,而无需手动将密码文件合并在一起?我正在使用nginx 1.11.5
8 nginx 

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.