标签: nginx

在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https?

我想将我的 Web 服务器上的所有 http 请求重写为 https 请求,我从以下内容开始:

服务器 {
    听80;

    地点 / {
      重写 ^(.*) https://mysite.com$1 永久;
    }
...


一个问题是这会剥离任何子域信息(例如,node1.mysite.com/folder),我如何重写上述内容以将所有内容重新路由到 https 并维护子域?

nginx https redirect

542
推荐指数
7
解决办法
53万
查看次数

如何在 Nginx.conf 中使用环境变量

我有一个运行 Nginx 的 docker 容器,它链接到另一个 docker 容器。第二个容器的主机名和 IP 地址在启动时作为环境变量加载到 Nginx 容器中,但在此之前不知道(它是动态的)。我希望我nginx.conf使用这些值 - 例如

upstream gunicorn {
    server $APP_HOST_NAME:$APP_HOST_PORT;
}
Run Code Online (Sandbox Code Playgroud)

如何在启动时将环境变量添加到 Nginx 配置中?

编辑 1

这是整个文件,在下面的建议答案之后:

env APP_WEB_1_PORT_5000_TCP_ADDR;
# Nginx host configuration for django_app

# Django app is served by Gunicorn, running under port 5000 (via Foreman)
upstream gunicorn {
    server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000;
}

server {
    listen 80;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location /static/ {
        alias /app/static/;
    }
    location /media/ {
        alias /app/media/;
    }
    location / {
        proxy_pass http://gunicorn;
    } …
Run Code Online (Sandbox Code Playgroud)

nginx docker

287
推荐指数
10
解决办法
32万
查看次数

为什么我需要 Nginx 和 Gunicorn 之类的东西?

我正在寻找对以下问题的过于简化的答案。我试图建立对 Nginx 如何与 Gunicorn 之类的东西一起工作的基本理解。

我是否需要 Nginx 和 Gunicorn 之类的东西才能在 Nginx 上部署 Django 应用程序?

如果是这样,实际处理 HTTP 请求的是什么?

附言。我不想使用 Apache 和 mod_wsgi!

nginx django

268
推荐指数
2
解决办法
10万
查看次数

如何查看 Nginx 编译时使用了哪些标志?

如何检查已将哪些模块添加到 nginx 安装中?

nginx

245
推荐指数
3
解决办法
16万
查看次数

Nginx 反向代理 + URL 重写

Nginx 在端口 80 上运行,我使用它来反向代理 URL,并/foo3200这种方式使用端口路径:

location /foo {
                proxy_pass http://localhost:3200;
                proxy_redirect     off;
                proxy_set_header   Host $host;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我在 port 上有一个应用程序3200,我不希望将初始/foo值发送到该应用程序。也就是说 - 当我访问时http://localhost/foo/bar,我只想/bar成为应用程序接收到的路径。所以我尝试将此行添加到上面的位置块:

rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent;
Run Code Online (Sandbox Code Playgroud)

这会导致 302 重定向(更改 URL),但我想要 301。我该怎么办?

nginx reverse-proxy 301-redirect

241
推荐指数
3
解决办法
50万
查看次数

如何在 nginx 中强制或重定向到 SSL?

我在子域上有一个注册页面,例如: https://signup.example.com

它应该只能通过 HTTPS 访问,但我担心人们可能会以某种方式通过 HTTP 偶然发现它并获得 404。

我在 nginx 中的 html/server 块如下所示:

html {
  server {
    listen 443;
    server_name signup.example.com;

    ssl                        on;
    ssl_certificate        /path/to/my/cert;
    ssl_certificate_key  /path/to/my/key;

    ssl_session_timeout 30m;

    location / {
      root /path/to/my/rails/app/public;
      index index.html;
        passenger_enabled on;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以添加什么以便去的人http://signup.example.com被重定向到https://signup.example.com?(仅供参考,我知道有些 Rails 插件可以强制使用,SSL但希望避免这种情况)

ssl nginx redirect ruby-on-rails

234
推荐指数
5
解决办法
31万
查看次数

nginx HTTPS 使用与 HTTP 相同的配置

有没有办法在两个 nginxserver {}块之间共享配置指令?我想避免重复规则,因为我网站的 HTTPS 和 HTTP 内容使用完全相同的配置。

目前,它是这样的:

server {
  listen 80;
  ...
}

server {
  listen 443;

  ssl on; # etc.
  ...
}
Run Code Online (Sandbox Code Playgroud)

我可以做一些类似的事情:

server {
  listen 80, 443;
  ...

  if(port == 443) {
    ssl on; #etc
  }
}
Run Code Online (Sandbox Code Playgroud)

nginx https

215
推荐指数
5
解决办法
19万
查看次数

如何在 NGINX 中添加 Access-Control-Allow-Origin?

如何设置 Access-Control-Allow-Origin 标头,以便我可以在主域上使用子域中的网络字体?


笔记:

您将在 HTML5BP 服务器配置项目https://github.com/h5bp/server-configs 中找到大多数 HTTP 服务器的此标头和其他标头的示例

nginx cors

205
推荐指数
6
解决办法
60万
查看次数

如何从 Nginx 回复 200,而不提供文件?

我已将 Apache 配置为发回 200 响应,而不使用此配置行提供任何文件

Redirect 200 /hello
Run Code Online (Sandbox Code Playgroud)

我可以用 Nginx 做到这一点吗?我不想提供文件,我只希望服务器响应 200(我只是记录请求)。

我知道我可以添加一个索引文件并实现相同的目的,但是在配置中执行此操作意味着可能会出错的事情少了一件。

http nginx html

196
推荐指数
5
解决办法
19万
查看次数

你如何重新启动php-fpm?

我需要重新加载我的 php.ini 并且帮助对话框中没有关于重新启动它的任何内容。

php nginx php5 php-fpm

183
推荐指数
7
解决办法
85万
查看次数

标签 统计

nginx ×10

https ×2

redirect ×2

301-redirect ×1

cors ×1

django ×1

docker ×1

html ×1

http ×1

php ×1

php-fpm ×1

php5 ×1

reverse-proxy ×1

ruby-on-rails ×1

ssl ×1