官网:https://hub.docker.com/_/nginx
前端UI发布: 将前端打包后的编译文件dict 挂载到 /usr/share/nginx/html/
docker run -it -d --restart unless-stopped -p 8080:80 --name bx_nginx -m 400m --memory-reservation 300m -v /opt/myuidict/:/usr/share/nginx/html/ \
-v /var/lib/docker/logs/nginx:/var/logs/nginx nginx:1.21.1
指定配置文件运行:
docker run -itd --restart unless-stopped -p 7996:80 --name my-nginx-container \ -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro nginx:1.21.1
默认配置:
nginx.conf

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { 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; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #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; # } #} }
Nginx高并发下的优化: 参考即可:https://segmentfault.com/a/1190000011405320
charset utf-8;
常用配置:
nginx.conf
#user nobody;
worker_processes 4;
events {
worker_connections 2048;
}
http { include mime.types; default_type application/octet-stream; charset utf-8,gbk; sendfile on; keepalive_timeout 65; ##### 代理服器上的图片 ##### server { listen 80; server_name localhost; location /pic/ {
#charset utf-8; expires 30d; #浏览器缓存30d
alias /home/sea/Desktop/pic/; autoindex on; #建议改为off,否则可以遍历看到路径下的所有文件 } } ##### 反向代理 ##### upstream airflow { server 192.168.25.140:9888; } server { listen 9888; server_name localhost; location / { proxy_pass http://airflow; index index.html index.htm; } } #end http }
允许跨域 使用IP访问请忽略
location /live { # 允许跨域 使用IP访问请忽略 add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Expose-Headers' 'Content-Length'; # 允许跨域预检请求 if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-08-20 axon 过滤存储哪些事件
2018-08-20 DDD领域驱动设计
2018-08-20 在Ubuntu下如何用CrossOver安装兼容性比较好的QQ(或TIM)