0

设置:我有 3 台服务器 服务器 1 - Nginx 和 Locustio 在这个盒子上 服务器 2 - 在端口 8001 上保存一个 django 项目 服务器 3 - 在端口 8001 上保存一个 django 项目

我的 Nginx 盒子有一个 ssl 证书,可以通过https://example.website.com/project访问 当我把它放在 URL 中时,一切正常,它在服务器 2 和服务器 3 上进行循环。

listen 443 default_server ssl;
server_name www.example.website.com;
ssl_certificate /etc/ssl/cert_bundle.crt; 
ssl_certificate_key /etc/ssl/example.website.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers   HIGH:!aNULL:!MD5;

root /usr/share/nginx/html;
    index index.html index.htm;

    # Make site accessible from http://localhost/
    # server_name localhost;

   location / {
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
       proxy_set_header X-NginX-Proxy true;

       proxy_pass http://backend_hosts;
       proxy_redirect off;

       # Handle Web Socket connections
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";

   }

当我尝试通过 Locust 访问它时会出现问题。

我的蝗虫文件.py

from locust import HttpLocust, TaskSet, task

def index(l):
      l.client.get("/")

class UserBehavior(TaskSet):
      tasks = {index:1}
      print "executing"
  # def on_start(self):
  #    login(self)

class WebsiteUser(HttpLocust):
      task_set = UserBehavior
      min_wait = 5000
      max_wait = 15000

当我通过以下方式运行蝗虫时:

locust --host=https://127.0.0.1/project

所有请求都失败。他们没有访问正确的服务器(看起来它没有被 Nginx 调用?)

当我通过以下方式运行蝗虫时:

locust --host=https://example.project.com/project

我没有从网络浏览器得到任何反馈(没有发送请求)

命令行日志确实给出了一些反馈:

[2016-10-17 11:08:45,550] msg-queue/INFO/locust.runners: Hatching and swarming 10 clients at the rate 1 clients/s...
[2016-10-17 11:08:55,557] msg-queue/INFO/locust.runners: All locusts hatched: WebsiteUser: 10
[2016-10-17 11:08:55,557] msg-queue/INFO/locust.runners: Resetting stats

^C[2016-10-17 11:10:20,419] msg-queue/ERROR/stderr: KeyboardInterrupt
[2016-10-17 11:10:20,419] msg-queue/INFO/locust.main: Shutting down (exit code 0), bye.
 Name                                                          # reqs      # fails     Avg     Min     Max  |  Median   req/s
--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                              0     0(0.00%)                                       0.00

Percentage of the requests completed within given times
 Name                                                           # reqs    50%    66%    75%    80%    90%    95%    98%    99%   100%
--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------

所以我的问题是,使用 Locust 访问服务器 2 和 3 的正确方法是什么?

Locust 与 Nginx 在同一台服务器上。我试过用

编辑:

当我通过以下方式运行蝗虫时:

蝗虫 --host= https://127.0.0.1/project

[2016-10-17 15:50:38,509] msg-queue/ERROR/requests.packages.urllib3.connection: Certificate did not match expected hostname: 127.0.0.1. Certificate: {'notAfter': 'Feb  5 14:32:38 2017 GMT', 'subjectAltName': (('DNS', 'example.website.com'), ('DNS', 'www.example.website.com')), 'subject': ((('organizationalUnitName', u'Domain Control Validated'),), (('commonName', u'example.website.com'),))}
[2016-10-17 15:50:38,540] msg-queue/ERROR/stderr: /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
4

1 回答 1

0

问题是我的 nginx 配置文件。它不允许本地主机请求

server_name localhost; 

添加该行似乎解决了我的问题。

于 2016-10-20T15:04:19.337 回答