nginx基本配置
#user nobody; #nginx进程数,建议设置为等于CPU总核心数 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { #epoll是多路复用IO(I/O Multiplexing)中的一种方式, #使用epoll的I/O 模型(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的) #仅用于linux2.6以上内核,可以大大提高nginx的性能 #use epoll; #单个后台worker process进程的最大并发链接数(最大连接数=连接数*进程数) worker_connections 1024; } 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"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nopush on; #防止网络阻塞 tcp_nodelay on; #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。 fastcgi_connect_timeout 300; fastcgi_send_timeout 30; fastcgi_read_timeout 30; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; #开启gzip压缩 gzip on; gzip_disable "MSIE [1-6]."; upstream 10.0.1.14 { #服务器集群 ip_hash; #会让相同的客户端ip请求相同的服务器。 server 10.0.1.14:8089 weight=1; #权重越大分配的几率就越大 #server 10.0.1.12:8086 weight=10; } server { #监听端口 listen 8086; #域名可以有多个,用空格隔开 server_name 10.0.1.14; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; #index index.html index.htm; proxy_set_header Host $host:$server_port; #nginx服务器进行地址转发默认是80端口,代码上获取不到请求的端口8086,如有需要因此需要设置请求头为请求的端口 #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.0.1.14; proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
本人参与过一个CMS的系统开发,市区内各学校都用这套系统,根据各校的域名访问系统得到对应的新闻等,以一台服务器的nginx的配置为例(注:将域名换成了ip,每个端口对应一个学校)
1 #user nobody; 2 worker_processes 8; 3 4 #error_log logs/error.log; 5 #error_log logs/error.log notice; 6 #error_log logs/error.log info; 7 8 #pid logs/nginx.pid; 9 10 11 events { 12 worker_connections 1024; 13 } 14 15 16 http { 17 include mime.types; 18 default_type application/octet-stream; 19 20 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 21 # '$status $body_bytes_sent "$http_referer" ' 22 # '"$http_user_agent" "$http_x_forwarded_for"'; 23 24 #access_log logs/access.log main; 25 26 sendfile on; 27 #tcp_nopush on; 28 29 #keepalive_timeout 0; 30 keepalive_timeout 65; 31 32 #gzip on; 33 34 35 upstream 192.168.100.214 { #服务器集群 36 #会让相同的客户端ip请求相同的服务器。 37 ip_hash; 38 server 192.168.100.214:8081; 39 server 192.168.100.214:8082; #weight权重越大分配的几率就越大 40 server 192.168.100.214:8083; 41 } 42 43 server { 44 listen 18081; 45 server_name 192.168.100.214; 46 47 #charset koi8-r; 48 49 #access_log logs/host.access.log main; 50 51 location / { 52 root html; 53 index index.html index.htm; 54 proxy_pass http://192.168.100.214; 55 proxy_set_header Host $host:$server_port; 56 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 57 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 58 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 59 } 60 } 61 62 server { 63 listen 18082; 64 server_name 192.168.100.214; 65 location / { 66 proxy_pass http://192.168.100.214; 67 proxy_set_header Host $host:$server_port; 68 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 69 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 70 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 71 } 72 error_page 500 502 503 504 /50x.html; 73 } 74 75 server { 76 listen 18083; 77 server_name 192.168.100.214; 78 location / { 79 proxy_pass http://192.168.100.214; 80 proxy_set_header Host $host:$server_port; 81 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 82 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 83 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 84 } 85 error_page 500 502 503 504 /50x.html; 86 } 87 88 server { 89 listen 18084; 90 server_name 192.168.100.214; 91 location / { 92 proxy_pass http://192.168.100.214; 93 proxy_set_header Host $host:$server_port; 94 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 95 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 96 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 97 } 98 error_page 500 502 503 504 /50x.html; 99 } 100 101 server { 102 listen 18085; 103 server_name 192.168.100.214; 104 location / { 105 proxy_pass http://192.168.100.214; 106 proxy_set_header Host $host:$server_port; 107 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 108 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 109 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 110 } 111 error_page 500 502 503 504 /50x.html; 112 } 113 114 server { 115 listen 18086; 116 server_name 192.168.100.214; 117 location / { 118 proxy_pass http://192.168.100.214; 119 proxy_set_header Host $host:$server_port; 120 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 121 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 122 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 123 } 124 error_page 500 502 503 504 /50x.html; 125 } 126 127 server { 128 listen 18087; 129 server_name 192.168.100.214; 130 location / { 131 proxy_pass http://192.168.100.214; 132 proxy_set_header Host $host:$server_port; 133 proxy_connect_timeout 6; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒 134 proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。 135 proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。 136 } 137 error_page 500 502 503 504 /50x.html; 138 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通