设定: 我有3台服务器 服务器1 - Nginx和Locustio在此框中 服务器2 - 在端口8001上保存django项目 server 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访问它时会出现问题。
我的locustfile.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位于同一台服务器上。我试过用
访问它编辑:
当我通过这样做运行蝗虫时:
locust --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
答案 0 :(得分:0)
问题是我的nginx配置文件。它不允许localhost请求
server_name localhost;
添加该行似乎解决了我的问题。