nginx:403禁止使用Location的特定文本值

时间:2018-05-27 04:21:08

标签: nginx nginx-location

我面临着nginx配置的一个奇怪问题。

一切正常。但是如果我改变location指令的值(同时保持一切完全相同),它就会失败。

以下配置有效:

#! /usr/bin/env python

# Importing connector

import mysql.connector
conn = None
#Opening a connection
try:
    conn = mysql.connector.Connect(host="localhost", user="root",password="Karimanzira1978!", database="classicmodels")
    print("Connected to MySQL!")
except Exception as ex:
    print ("cannot connect to MySQL : exception : " + str(ex))

# Setting a cursor

cursor1 = conn.cursor()
cursor2= conn.cursor()

c = conn.cursor()


cursor1.execute("SELECT sum(amount), sum(amount *.99) as discounted_amount, paymentDate from payments where paymentDate >= '2003-12-01' AND paymentDate <='2003-12-31'")

print(cursor2.fetchall())

cursor2.execute("SELECT sum(amount), sum(amount *.99) as discounted_amount, paymentDate from payments where paymentDate >= '2004-12-01' AND paymentDate <='2004-12-31'")


print(cursor2.fetchall())

conn.commit()

conn.close

但不是这样:

location ~ ^/v1/works/(.*)$ {
  ...
  ...
}

我收到此错误日志:

location ~ ^/v1/doesnotwork/(.*)$ {
  ...
  ...
}

似乎某些规则允许使用特定的单词(&#34;在此示例中起作用#34;)但是禁止使用另一个单词(&#34;在这个例子中没有工作&#34;)用于位置指令。

可能是什么原因?一般nginx配置的哪一部分或者proxy_pass配置特别可以使这样的规则成为可能?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

原因是同一域的服务器块多次出现。

原作者首先尝试使用测试环境中的一些服务以及其他一些来自prod的服务。经过测试,最后纠正了服务器。但他忘记将两个街区合并为一个。

服务器域的重新出现以及某些位置指令的重新出现导致了这个问题。

在将所有这些位置合并到单个服务器块时,问题得到了解决。