我有一个带有许多启用的服务器块的 Nginx。每个服务器响应 1 个规范域,并且可以将 1 个或多个转发到该规范 URL。我至少有一台服务器(还没有检查所有服务器),如果我输入一个指向这个框的不存在的域,Nginx 会显示一个它选择的站点(总是同一个站点,但不是一个我在后面)。
我已经浏览了我总是登陆的站点的配置文件,但没有看到任何明显的东西可以将其识别为任何类型的默认站点,但它就在那里,当我胖手指一个 URL 时总是显示出来。
关于我应该寻找什么来追踪这个问题的任何想法?
我有一个 nginx Web 服务器充当反向代理,将请求转发到 Apache 进行额外处理(我求你不要问为什么)。我有一个请求,我试图附加一个自定义标头,我希望 nginx 将该自定义标头转发给 Apache,以便我可以在应用程序中使用它做一些事情。
我已经翻阅了HttpProxyModule
文档,但即使我在正确的地方,它们也不是很具有描述性(很可能我不是)。
如何让 nginx 转发X-CUSTOM-REFERRER
标头?此外,如果可能的话,我希望它沿着进入的任何自定义标题转发。如果后者要求太多,前者就足以满足我目前的需要。
如您所见,我对 nginx 非常陌生,因此补救版本会有所帮助。
谢谢。
更新
我现有配置中的相关片段:
location / {
proxy_pass http://preview;
proxy_redirect off;
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_set_header X-Custom-Referrer $x_custom_referrer;
}
Run Code Online (Sandbox Code Playgroud) 我有一个在 Vagrant 开发环境中运行的 Wordpress 站点。当我加载时http://localhost:8080
,该站点可以正常运行,但是一旦我尝试通过转到 来访问管理员http://localhost:8080/wp-admin
,我就会被重定向到http://localhost/wp-admin/
.
这里有两件事:
我已经尝试添加port_in_redirect
我在类似问题的其他答案中看到的指令(老实说,使用这两个值),但它没有任何改变。
知道我错过了什么吗?
在我们的开发环境中,我正在将一些 Apache 站点迁移到 Nginx。我想要做的是确保属于同一组 ( webgroup
) 的开发人员能够完全访问由 Web 服务器用户 ( ) 创建的文件(例如日志文件)www-data
。Web 用户创建的文件通常由所有者拥有,www-data:www-data
因此我想我应该更改该用户的主要组以匹配开发人员的组 ( webgroup
)。
组更改似乎已完成,但新创建的文件仍归www-data:www-data
. 我没有看到group
nginx conf 的指令,所以我想知道是否有任何方法可以确保 nginx 用户创建/更新的文件归正确的组所有。
如果我提前考虑,我想我可以www-data
为所有用户创建主要组,但我没有,而且我想避免回去接触所有这些用户。请记住,这是一个开发环境,因此安全性并不是非常重要,但我仍然希望避免让每个人都以 root 身份或类似的开放身份进行身份验证。
更新
此后我尝试更新我的nginx.conf
文件,如下所示,但无济于事。www-data:www-data
重新启动和强制重新加载后仍会创建新文件。
user www-data webgroup
Run Code Online (Sandbox Code Playgroud) 我正在将一些站点从 Apache 迁移到 Nginx 并尝试配置一个以响应 SSL 请求。目前我收到服务器无响应错误。如果我切换到端口 80,我会收到一个 nginx 错误(不用担心错误本身,因为 nginx 至少正在提供它)。
对于这个站点,我希望它只回答 ssl 请求。这是服务器块的样子:
server {
listen 443;
server_name dev.project.mydomain.net;
root /opt/dev/project-root;
index index.php;
ssl on;
ssl_certificate /etc/ssl/certs/mycert.crt;
ssl_certificate_key /etc/ssl/certs/mycert.pem;
access_log /var/log/nginx/vh.dev-project.access.log;
error_log /var/log/nginx/vh.dev-project.error.log;
location /aliasing/ {
alias /opt/dev/project-root/aliased;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Run Code Online (Sandbox Code Playgroud)
任何见解将不胜感激。
更新
我的 http 块:
http {
include /etc/nginx/mime.types; …
Run Code Online (Sandbox Code Playgroud) 是的,我知道还有很多其他问题看起来与此完全一样。我想我一定看过所有这些。两次。绝望中,如果我的特定配置是问题,我将添加另一个。忍受我。
首先,问题:我需要做什么才能让 gzip 压缩工作?
我安装了一个运行 nginx 1.1.19 的 Ubuntu 12.04 服务器。Nginx 与以下软件包一起安装:
nginx
nginx-common
nginx-full
Run Code Online (Sandbox Code Playgroud)
http
我的块nginx.conf
看起来像这样:
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)
PageSpeed 和 YSlow 都报告我需要启用压缩。我可以看到请求标头指示Accept-Encoding:gzip,deflate,sdch
,但响应标头没有推论Content-Encoding
标头。
我已经试过各种其他配置值(gzip_vary on
,gzip_http_version 1.0
,等),但没有喜悦。
据我所知,我只能假设 nginx 是通过压缩支持编译的,但是如果有任何方法可以验证这一点,我很想知道。
如果有人看到我遗漏的任何内容或可以建议进一步调试,请告诉我。我不是系统管理员,我是 Nginx 的新手,所以我已经用尽了我能想到或读过的所有内容。
谢谢。