标签: nginx

nginx : HTTP/2 切换到 HTTP/1.1(测试)

出于测试目的,我一直在尝试将我的 nginx 服务器切换回 HTTP/1.1。自从 HTTP/2 首次可用(版本 1.9.5)以来,我一直在使用它。

根据该文件,该发行说明,HTTP / 2由设置简单的启用http2listen在我的指令server块。

但是,删除“http2”似乎不会强制服务器再次使用 HTTP。

想法?

环境:Debian 8.5,nginx 1.11.1,LibreSSL 2.3.8编译

谢谢你。

nginx http-2

3
推荐指数
1
解决办法
3947
查看次数

无法通过 ip 访问网站,但我可以通过完全限定的域访问

所以似乎我无法通过 IP 浏览网站,但我可以使用它的主机名浏览。

C:\Users\c>nslookup www.example.com
Non-authoritative answer:
Name:    cx-cdn-bre.gss.consultix.net
Addresses:  62.168.203.241
          62.168.202.241
Run Code Online (Sandbox Code Playgroud)

尝试访问 62.168.203.241 显示“nginx 内部服务器错误”但是如果我访问 www.example.com,页面会加载。这怎么可能?

dns ip nginx load-balancer

3
推荐指数
2
解决办法
9817
查看次数

如果在 DNS 中将 x.domain.com 和 y.domain.com 设置为相同的 IP 地址会怎样?

如果我将 x.domain.com 和 y.domain.com 设置为相同的 IP 地址,是否意味着 Nginx 无法区分 x.domain.com 和 y.domain.com 之间的区别?

是否不可能将服务器上下文中的服务器指令中的 x.domain.com 和 y.domain 映射到不同的文件夹?

我还想了解更多有关计算机网络如何工作的信息?谁能给我一些资源?

nginx

2
推荐指数
1
解决办法
728
查看次数

如何在 debian 上完全重新安装软件包

我不小心删除了 /etc/init.d/nginx 文件和 /etc/nginx 文件夹。

如何通过将所有 confs 恢复为默认值来完全重新安装 nginx?

debian package-management nginx apt-get

2
推荐指数
1
解决办法
3039
查看次数

Web 服务器应该由特殊用户运行吗?

我是 Linux 的初学者,我一直想知道的一件事是像 Nginx / uWSGI(用于 Django 项目)这样的东西是否应该在为此目的创建的用户下运行,或者我的正常登录是否应该我用SSH到服务器应该是用的。

linux webserver nginx

2
推荐指数
1
解决办法
124
查看次数

在一个位置内设置一个包罗万象的地方,并回退到index.php

我正在努力处理 nginx 配置。我有一个server块,我希望所有请求都转到index.php?tags=$uri,除非$uri存在(如index.php?a=b/?a=b)。

我期望:

try_files $uri index.php?tags=$uri;
Run Code Online (Sandbox Code Playgroud)

但是,不,那太简单了。这不适用于/?a=b,显然没有找到,所以它指向index.php?tags=/

也许如果我明确包含一个index,这是合理的:

index index.php;
Run Code Online (Sandbox Code Playgroud)

没有。没有骰子。全面相同的确切结果。

也没有$args$request_uri或组合。也不是它:

try_files $request_uri/index.php $request_uri index.php?tags=$request_uri; // now I'm just guessing
Run Code Online (Sandbox Code Playgroud)

阿帕奇总是知道我的意思。为什么nginx没有?我想要这些重定向(不带redirectif):

/   => /index.php
/index.php   => /index.php
/index.php?a=b   => /index.php?a=b
/?a=b   => /index.php?a=b
/foo   => /index.php?tags=foo (or /index.php?tags=/foo)
/foo/bar   => /index.php?tags=foo/bar (or /index.php?tags=/foo/bar)
/foo?bar=yes   => /index.php?tags=/foo%3Fbar%3Dyes
Run Code Online (Sandbox Code Playgroud)

我希望在重定向时对查询字符串进行编码,而不是对路径进行编码,但实际上这并不那么重要。

(我也不明白 $uri 和 $request_uri 之间的实际区别。它们似乎一半时间都在做同样的事情。但那是另一天的事了。)

非常感谢。

url-rewriting nginx

2
推荐指数
1
解决办法
5714
查看次数

Nginx 反向代理需要在 htpasswd 结束时使用 }

在线生成 htpasswd 文件后,nginx 给我错误“nginx: [emerg] 意外的文件结尾,在 /etc/nginx/sites-enabled/htpasswd:2 中需要“;”或“}”。奇怪的是,只有一行。我的配置文件如下:

server {
    listen 80;

    index index.html
    auth_basic "User: (username) Password: (password)";
    auth_basic_user_file htpasswd;
    location / {
         proxy_pass http://localhost:8080;
    }
}
Run Code Online (Sandbox Code Playgroud)

我很好奇这是为什么。谢谢。

编辑:我的htpasswd内容如下:xxx:$apr1$xxx

proxy nginx

2
推荐指数
1
解决办法
607
查看次数

Nginx 反向代理非 HTTP 软件

我想知道是否可以使用 Nginx 来做到这一点:

server1.domain.com:9999 --> localhost:4000
server2.domain.com:9999 --> localhost:5000
server3.domain.com:9999 --> localhost:6000
server4.domain.com:9999 --> localhost:7000
Run Code Online (Sandbox Code Playgroud)

在端口 4000、5000、6000 和 7000 上运行的服务不是 HTTP 软件。

如果无法使用 Nginx,我可以使用什么程序来实现这一点(而不干扰 Nginx)?我的 VPS 运行的是 Ubuntu 18.04。

谢谢。

linux proxy nginx reverse-proxy ubuntu

2
推荐指数
1
解决办法
7216
查看次数

Nginx 创建由 root 而不是指定用户拥有的日志文件

我正在运行 CentOS 7.7,我想在自定义用户下运行 Nginx,并具有自定义 www 和日志位置。我已经使用了 SELinux,所以我启用了我的自定义目录:

\n\n
semanage permissive -a httpd_t # temporarily make SELinux permissive\nsemanage fcontext -a -t httpd_sys_content_t  '/opt/x/data/nginx(/.*)?'\nrestorecon -R -v /opt/x/data/nginx\nsemanage fcontext -a -t  httpd_log_t '/opt/x/log/nginx(/.*)?'\nrestorecon -R -v /opt/x/log/nginx\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 nginx.conf:

\n\n
user Xnginx Xgrp;\nworker_processes auto;\nerror_log /opt/x/log/nginx/error.log;\npid /run/nginx.pid;\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及目录权限:

\n\n
ls -lZ /opt/X/log/\ndrwxrwxr-x. Xnginx Xgrp unconfined_u:object_r:httpd_log_t:s0 nginx\n
Run Code Online (Sandbox Code Playgroud)\n\n

我启动 Nginx

\n\n
systemctl start nginx\n
Run Code Online (Sandbox Code Playgroud)\n\n

它给出了

\n\n
[root@RE1 nginx]# systemctl status nginx\nnginx.service - The nginx HTTP and reverse proxy server\n  Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; …
Run Code Online (Sandbox Code Playgroud)

nginx centos-7

2
推荐指数
1
解决办法
4096
查看次数

Nginx 没有公共证书

有什么方法可以在没有公共证书的情况下配置 Nginx 吗?

这里的目标是,我想在公共互联网上发布 API,但所有 API 客户端(白名单客户端)都应该在其应用程序中 SSL 固定公共证书,而不是根据请求获取临时证书。所以我们不需要nginx来发布公共证书。

我知道公共证书公开共享是无害的,但这个特殊的要求来自我们的企业客户。他们甚至询问我们是否可以在 nginx 中放入无效的公共证书...因此,当没有真正公共证书的“攻击者”会将 API 视为错误时,而真正的 ssl 固定客户端将能够使用API 正常。

ssl nginx pinning public-key

2
推荐指数
2
解决办法
2149
查看次数

如何重定向到其他服务器?(阿帕奇和nginx)

我有一个 Apache 服务器在端口 80 上为两个站点运行。假设域是example.com,我有另一个域example2.com。当用户访问时example.com,我希望它提供这些文件(因此是虚拟主机),但是当有人尝试访问域example2.com(即在同一 IP 地址上)时,我希望它重定向到端口 90 上的另一个 IP 地址,而无需访客知道他在不同的港口。

我怎样才能做到这一点?

<VirtualHost example.com:80>   
 DocumentRoot {rootdir}  
 ServerName example.com  
 ServerAlias example.com 
</VirtualHost>   
<VirtualHost *:80>   
  NoProxy .example.com  
  ProxyPreserveHost On  
  ProxyRequests Off  
  ServerName *  
  ProxyPass / http://server2:90  
  ProxyPassReverse / http://server2:90  
</VirtualHost>  
Run Code Online (Sandbox Code Playgroud)

这不起作用,它也试图example.com与代理取得联系,有人知道为什么吗?

apache-http-server redirection nginx

1
推荐指数
1
解决办法
1万
查看次数

如何在 Ubiquiti 路由器上使用 nginx 作为反向代理

几天来,我一直在尝试设置我的 Ubiquiti ErPoe-5(固件 1.9.1)以使用 nginx 运行反向代理,似乎我的大部分麻烦都是由于我无法获得设备上最新版本的 nginx。

我看过的关于在其上安装 nginx的教程只让我知道 nginx 1.2,它不支持 websockets 或 HTTP2。HTTP2 不是必需的,但对于我想通过反向代理公开的内部资源,websockets 支持是必须的。事实上,路由器本身在其自己的 Web 管理界面中使用它们,并且从ubiquiti 论坛中的这篇文章中可以看出,您可能也需要 HTTP2。

linux router nginx reverse-proxy

1
推荐指数
1
解决办法
5515
查看次数

覆盖 systemd drop-in 中的 ExecStartPre=

我想在 Debian (Buster) 下添加一个 systemd 插件nginx.service。包含的ExecStartPre=指令应在服务器启动之前从模板创建 Nginx 配置文件。

我面临的麻烦是/lib/systemd/system/nginx.service已经包含一个ExecStartPre=,它检查 Nginx 配置文件的有效性。由于它是在ExecStartPre=我的 drop-in 之前执行的,并且 Nginx 配置文件此时尚未完成,因此systemctl start nginx.service失败。

我如何指示 systemd 执行我的ExecStartPre=第一个(或忘记ExecStartPre=from /lib/systemd/system/nginx.service)?

UPDATE ExecCondition=看起来很有希望,但显然在我的 systemd 版本(241)中不可用。

debian nginx systemd

1
推荐指数
1
解决办法
1834
查看次数