Nginx 설정 에이전트
nginx 로 전단 요청 과 백 엔 드 요청 을 나 누 는 방법 을 보 여 줍 니 다.
전단 배치
[root@learn200 html]# pwd
/usr/local/nginx/html
[root@learn200 html]# ll
total 56
-rw-r--r--. 1 root root 537 May 24 16:45 50x.html
-rw-r--r--. 1 root root 6620 May 24 17:57 about.html
-rw-r--r--. 1 root root 12575 May 24 17:57 blog.html
-rw-r--r--. 1 root root 5791 May 24 17:57 contact.html
drwxr-xr-x. 2 root root 104 May 24 17:57 css
drwxr-xr-x. 4 root root 38 May 24 17:57 fonts
drwxr-xr-x. 2 root root 183 May 24 17:57 images
-rw-r--r--. 1 root root 11012 May 24 17:57 index.html
drwxr-xr-x. 2 root root 230 May 24 17:57 js
-rw-r--r--. 1 root root 7608 May 24 17:57 portfolio.html
from flask import Flask
server=Flask(__name__)
@server.route('/api/test')
def test():
return "Hello AganRun 8081"
server.run(port=8081, host='0.0.0.0')
마찬가지 로 Demo 를 복 사 했 습 니 다. 포트 는 8082 에서 시작 되 었 습 니 다. 방문 구분 방문 을 위해 저 는 8082 로 돌 아 왔 습 니 다.
[root@learn200 python]# python3 demo1.py
* Serving Flask app "demo1" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:8081/ (Press CTRL+C to quit)
방문 하 다.
[root@learn200 python]# curl localhost:8081/api/test
Hello AganRun 8081
[root@learn200 python]# curl localhost:8082/api/test
Hello AganRun 8082
NGINX 에이전트
위의 백 엔 드 접근 은 포트 를 통 해 직접 접근 합 니 다. 현재 nginx 프 록 시 에서 80 포트 의 / api 시작 요청 을 fllask 프로젝트 에 부하 균형 있 는 프 록 시 로 요청 합 니 다.
user nobody nobody;
worker_processes 1; # CPU
error_log /usr/local/nginx/logs/nginx_error.log crit; #
pid /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on; #
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
upstream mysvr { # flask
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
#limit_zone crawler $binary_remote_addr 10m;
# server
server
{
listen 80;#
server_name localhost;#
location / {
root /usr/local/nginx/html;
index index.html index.htm;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ #
{
root /usr/local/nginx/html;
expires 30d;
}
location ~ .*\.(js|css|html)$ #
{
root /usr/local/nginx/html;
expires 15d;
}
location ~ /api/ #
{
proxy_pass http://mysvr;
proxy_redirect default;
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
access_log logs/access.log;
}
}
[root@learn200 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@learn200 conf]# nginx -s reload
[root@learn200 conf]# curl localhost/api/test
Hello AganRun 8081[root@learn200 conf]# curl localhost/api/test
Hello AganRun 8082[root@learn200 conf]# curl localhost/api/test
Hello AganRun 8081[root@learn200 conf]# curl localhost/api/test
Hello AganRun 8082[root@learn200 conf]#
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.