1

nginxが提供するリクエストでuwsgiを介して実行されている小さなpythonアプリがあります。

私は環境変数を出力しています...そして、いくつかのOKリクエストの後、nginxは無関係なリクエストに対して同じHTTP_COOKIEパラメータを送信しているようです:

例えば:

{'UWSGI_CHDIR': '/ebs/py', 'HTTP_COOKIE': 'ge_t_c=4fcee8450c3bee709800920c', 'UWSGI_SCRIPT': 'サーバー', 'uwsgi.version': '1.1.2', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/redirect/ebebaf3b-475a-4010-9a72-96eeff797f1e', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'x-wsgiorg.fdevent.readable': , 'CONTENT_LENGTH' : '', 'uwsgi.ready_fd': なし, 'HTTP_USER_AGENT': 'Mozilla/5.0 (互換性あり; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)', 'HTTP_CONNECTION': 'close', 'HTTP_REFERER': 'http://www.facebook.com/'、'SERVER_NAME': 'pixel.domain.com'、'REMOTE_ADDR': '10.load.bal.ip'、'wsgi.url_scheme': 'http', 'SERVER_PORT': '80', 'wsgi.multiprocess': True, 'uwsgi.node': 'py.domain.com', 'DOCUMENT_ROOT': '/etc/nginx/html', 'UWSGI_PYHOME': '/ebs/py', 'uwsgi.core': 127, 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent.writable': , 'wsgi.input': , 'HTTP_HOST': ' track.domain.com', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/ebebaf3b-475a-4010-9a72-96eeff797f1e', 'HTTP_ACCEPT': 'text/html, application/xhtml+xml,/ebs/py', 'uwsgi.core': 127, 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent.writable': , 'wsgi.input': , 'HTTP_HOST': 'track.domain.com ', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/ebebaf3b-475a-4010-9a72-96eeff797f1e', 'HTTP_ACCEPT': 'text/html, application/xhtml+xml,/ebs/py', 'uwsgi.core': 127, 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent.writable': , 'wsgi.input': , 'HTTP_HOST': 'track.domain.com ', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/ebebaf3b-475a-4010-9a72-96eeff797f1e', 'HTTP_ACCEPT': 'text/html, application/xhtml+xml,/ ', 'wsgi.version': (1, 0), 'x-wsgiorg.fdevent.timeout': なし, 'HTTP_X_FORWARDED_FOR': '10.load.bal.ip', 'wsgi.errors': , 'REMOTE_PORT ': '36462', 'HTTP_ACCEPT_LANGUAGE': 'en-US', 'wsgi.run_once': False, 'HTTP_X_FORWARDED_PORT': '80', 'CONTENT_TYPE': '', 'wsgi.file_wrapper': , 'HTTP_ACCEPT_ENCODING': 'gzip、デフレート'}

{'UWSGI_CHDIR': '/ebs/py', 'HTTP_COOKIE': 'ge_t_c=4fcee8450c3bee709800920c', 'UWSGI_SCRIPT': 'サーバー', 'uwsgi.version': '1.1.2', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'x-wsgiorg.fdevent.readable': , 'CONTENT_LENGTH' : '', 'uwsgi.ready_fd': なし, 'HTTP_USER_AGENT': 'Mozilla/5.0 (iPad; Mac OS X のような CPU OS 5_1_1) AppleWebKit/534.46 (Gecko のような KHTML) バージョン/5.1 Mobile/9B206 Safari/7534.48. 3', 'HTTP_CONNECTION': 'close', 'HTTP_REFERER': 'http://www.facebook.com/', 'SERVER_NAME': 'pixel.domain.com', 'REMOTE_ADDR': '10.load.balancer.ip', 'wsgi.url_scheme': 'http', 'SERVER_PORT': '80', 'wsgi.multiprocess': True, 'uwsgi.node': 'py.domain. com', 'DOCUMENT_ROOT': '/etc/nginx/html', 'UWSGI_PYHOME': '/ebs/py', 'uwsgi.core': 127, 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent. writable': , 'wsgi.input': , 'HTTP_HOST': 'fire.domain.com', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,multiprocess': True, 'uwsgi.node': 'py.domain.com', 'DOCUMENT_ROOT': '/etc/nginx/html', 'UWSGI_PYHOME': '/ebs/py', 'uwsgi.core': 127 , 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent.writable': , 'wsgi.input': , 'HTTP_HOST': 'fire.domain.com', 'wsgi.multithread': False, 'REQUEST_URI' : '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,multiprocess': True, 'uwsgi.node': 'py.domain.com', 'DOCUMENT_ROOT': '/etc/nginx/html', 'UWSGI_PYHOME': '/ebs/py', 'uwsgi.core': 127 , 'HTTP_X_FORWARDED_PROTO': 'http', 'x-wsgiorg.fdevent.writable': , 'wsgi.input': , 'HTTP_HOST': 'fire.domain.com', 'wsgi.multithread': False, 'REQUEST_URI' : '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,入力': , 'HTTP_HOST': 'fire.domain.com', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'HTTP_ACCEPT': 'text/ html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,入力': , 'HTTP_HOST': 'fire.domain.com', 'wsgi.multithread': False, 'REQUEST_URI': '/redirect/2391e658-95ef-4300-80f5-83dbb1a0e526', 'HTTP_ACCEPT': 'text/ html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,/ ;q=0.8', 'wsgi.version': (1, 0), 'x-wsgiorg.fdevent.timeout': なし, 'HTTP_X_FORWARDED_FOR': '10.load.bal.ip', 'wsgi.errors' : , 'REMOTE_PORT': '39498', 'HTTP_ACCEPT_LANGUAGE': 'en-us', 'wsgi.run_once': False, 'HTTP_X_FORWARDED_PORT': '80', 'CONTENT_TYPE': '', 'wsgi.file_wrapper': , 'HTTP_ACCEPT_ENCODING': 'gzip、デフレート'}

これらは 2 つの異なるクライアントです。シークレット セッションを開き、ヘッダーで Cookie が送信されていないことを確認しました。uwsgi ログは、同じ HTTP_COOKIE を受信したことを示しています。

他のリクエストに関係なく、nginx が現在のリクエストの適切な情報のみを渡すようにするにはどうすればよいですか?

4

1 に答える 1

2

理解した...

この行を/etc/nginx/のuwsgi_paramsに追加する必要がありました

uwsgi_param HTTP_COOKIE $ http_cookie;

これがないと、uwsgi/pythonアプリでHTTP_COOKIE変数を信頼できませんでした。

于 2012-06-19T15:27:30.983 に答える