Simon Shi的小站

人工智能,机器学习, 强化学习,大模型,自动驾驶

0%

Nginx

安装

1
2
3
4
5
6
7
8
9
cd nginx-1.25.1
./configure --prefix=/usr/local/nginx_1.25.1 \
--with-stream \
--with-http_ssl_module \
--with-pcre \
--with-http_gzip_static_module

--user=nginx \
--group=nginx \

nginx path prefix: “/usr/local/nginx_1.25.1”
nginx binary file: “/usr/local/nginx_1.25.1/sbin/nginx”
nginx modules path: “/usr/local/nginx_1.25.1/modules”
nginx configuration prefix: “/usr/local/nginx_1.25.1/conf”
nginx configuration file: “/usr/local/nginx_1.25.1/conf/nginx.conf”
nginx pid file: “/usr/local/nginx_1.25.1/logs/nginx.pid”
nginx error log file: “/usr/local/nginx_1.25.1/logs/error.log”
nginx http access log file: “/usr/local/nginx_1.25.1/logs/access.log”
nginx http client request body temporary files: “client_body_temp”
nginx http proxy temporary files: “proxy_temp”
nginx http fastcgi temporary files: “fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “scgi_temp”

nginx config

cat /etc/nginx/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 1800s;
client_header_timeout 1800;
client_body_timeout 1800;
send_timeout 1800;

types_hash_max_size 2048;
# server_tokens off;

client_max_body_size 10m;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}


#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

自定义config

/etc/nginx/conf.d/nginx_s.conf

cat /data/ai+/CartoonBody/confgs/nginx_s.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
upstream cuda2 {
server 127.0.0.1:9000;
#server 127.0.0.1:9001 weight=10;
#server 127.0.0.1:9002 weight=10;
#server 127.0.0.1:9003 weight=8;
}
upstream cuda_sxx {
server 127.0.0.1:9010;
}
upstream cuda_xp {
server 127.0.0.1:9030;
}

server {
# listen 5000 ssl;
listen 5000;
#include agent_deny.conf;
server_name 127.0.0.1; # 这是HOST机器的外部域名,用地址也行
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
charset 'utf-8';
# ssl_certificate cert/service.deepgaming.cn.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
# ssl_certificate_key cert/service.deepgaming.cn.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
# ssl_session_timeout 5m;
# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
# ssl_prefer_server_ciphers on;
# rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。

#limit_req zone=one burst=5 nodelay; #执行的动作,通过zone名字对应


location / {
proxy_pass http://cuda2; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host:5000;#保留代理之前的host
proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}

# 重写 URL 中带有 /cycle/ 前缀的请求路径。
# location: 定义一个匹配规则来捕获请求路径。
# ~*: 表示使用正则表达式进行匹配,并且是大小写不敏感的。
# /cycle/: 匹配所有以 /cycle/ 开头的请求路径。
location ~* /cycle/{

rewrite ^/cycle/(.*)$ /$1 break;
# ^/cycle/(.*)$: 这是一个正则表达式,用于匹配以 /cycle/ 开头的路径,并捕获 /cycle/ 之后的所有字符(. 表示任意字符,* 表示前面的字符可以出现任意次数,^ 和 $ 分别表示字符串的开头和结尾)。
# /$1: $1 是正则表达式中的第一个捕获组(即 (.*) 中括号内的部分)
proxy_pass http://cuda_sxx/ ;
proxy_set_header Host $host:5000;#保留代理之前的host
proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}

location ~* /pix2pix/{
rewrite ^/pix2pix/(.*)$ /$1 break;
proxy_pass http://cuda_xp;
proxy_set_header Host $host:5000; #保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}
}

配置示例2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
upstream glm {
server 127.0.0.1:6090;
}

upstream sd1 {
server 127.0.0.1:6081;
}
upstream site_sd2 {
server 127.0.0.1:6082;
}
upstream sd3 {
server 127.0.0.1:6083;
}
upstream sd4 {
server 127.0.0.1:6084;
}

server {
listen 6080;
#include agent_deny.conf;
server_name 127.0.0.1; # 这是HOST机器的外部域名,用地址也行
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
charset 'utf-8';

location / {
proxy_pass http://sd1; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host:6080;#保留代理之前的host
proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}

location /sd1/ {
proxy_pass http://sd1/ ;
proxy_set_header Host $host:6080; #保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}

location /sd2/ {
proxy_pass http://site_sd2/ ;
proxy_set_header Host $host:6080; #保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}
location /sd3/ {
proxy_pass http://sd3/ ;
proxy_set_header Host $host:6080; #保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}
location /sd4/ {
proxy_pass http://sd4/ ;
proxy_set_header Host $host:6080; #保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect default;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
proxy_temp_file_write_size 128k;
}
}

run

1
2
cd /usr/local/nginx_1.25.1
./sbin/nginx -s reload