Nginx快速安装

nginx

nginx安装

安装编译需要的软件
yum install -y gcc gcc-c++
安装Nginx依赖
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
创建Nginx用户
useradd -s /bin/false -M nginx
下载Nginx源码
wget http://nginx.org/download/nginx-1.12.0.tar.gz 
tar -zxvf nginx-1.12.0.tar.gz

Nginx 编译安装

# 生成make文件
./configure --user=nginx --group=nginx \
--prefix=/etc/nginx-1.12.0 \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre

# 编译并安装
make && make install
## 添加软连接 
ln -s /etc/nginx-1.12.0/ /etc/nginx
## 添加环境变量 
ln -s /etc/nginx/sbin/* /usr/local/sbin/


Nginx目录介绍
nginx
|-- client_body_temp
|-- conf
|   |-- conf.d
|   |-- default.conf
|   |-- fastcgi.conf
|   |-- fastcgi.conf.default
|   |-- fastcgi_params
|   |-- fastcgi_params.default
|   |-- server-gateway.conf.bak
|   |-- koi-utf
|   |-- koi-win
|   |-- mime.types
|   |-- mime.types.default
|   |-- nginx.conf nginx 子目录存放文件夹
|   |-- nginx.conf.default
|   |-- scgi_params
|   |-- scgi_params.default
|   |-- uwsgi_params
|   |-- uwsgi_params.default
|   `-- win-utf
|-- fastcgi_temp
|-- html
|   |-- 50x.html
|   `-- index.html
|-- logs
|   |-- error.log
|   `-- nginx.pid
|-- proxy_temp
|-- sbin
|   `-- nginx
|-- scgi_temp
`-- uwsgi_temp
Nginx 配置文件详解

location匹配模式以及顺序
  • location = /uri =开头表示精确匹配,只有完全匹配上才能生效
  • location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前
  • location ~ pattern ~开头表示区分大小写的正则匹配
  • location ~* pattern ~*开头表示不区分大小写的正则匹配
  • location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后
  • location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
nginx常用命令
  • 检查配置: nginx -t
  • 指定配置文件启动nginx: nginx -c file
  • 启动nginx:nginx
  • 停止nginx: nginx -s stop
  • 平滑停止nginx:nginx -s quit
  • 重载配置:nginx -s reload

配置参考

Web服务器参考
#user  nobody; 
worker_processes  auto; 
#worker_cpu_affinity  auto;
worker_rlimit_nofile 655350;
 
#pid        logs/nginx.pid;
error_log  /data/logs/nginx/error.log error;
 
events {
use epoll;     
worker_connections  655350; 
}

http {    
include       mime.types;    
default_type  application/octet-stream;    
charset utf-8;    
log_format  main '$remote_addr $server_addr $remote_user [$time_local] $host '                    '"$request" $status $body_bytes_sent $request_time $upstream_response_time '                    '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';                    
access_log  /data/logs/nginx/access.log main;
sendfile        on;
keepalive_timeout 90000;    
server_names_hash_max_size 1024;    
server_names_hash_bucket_size 512;    
client_header_buffer_size    16k;    
large_client_header_buffers 4 64k;    
client_header_timeout  300m;    
client_body_timeout    300m;    
send_timeout          300m;    
tcp_nopush     on;    
tcp_nodelay    on;    
client_max_body_size 100M;    
client_body_buffer_size 50m;    
proxy_connect_timeout 5;    
proxy_send_timeout 15;    
proxy_read_timeout 15;    
proxy_buffer_size 256k;    
proxy_buffers 8 256k;    
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;    
proxy_intercept_errors  on;    
proxy_headers_hash_max_size 512;    
proxy_headers_hash_bucket_size 256;    
variables_hash_max_size 512;    
variables_hash_bucket_size 128;    
gzip on;    
gzip_min_length 1100;
gzip_buffers    4 8k;
gzip_comp_level 3;
gzip_http_version 1.0;
gzip_types text/plain application/x-javascript application/json application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
output_buffers 1 32k;    postpone_output 1460;
gzip_vary on;    map_hash_max_size 102400;    map_hash_bucket_size  256;
fastcgi_intercept_errors on;        
server {         
listen 80;         
server_name carlosxiao.cc;         
location / {            
root /data/www;            
index index.html index.htm;        
}        
access_log  /data/logs/nginx/carlosxiao.log;    
}    
}

反向代理
#user  nobody; 
worker_processes  auto; 
#worker_cpu_affinity  auto; 
worker_rlimit_nofile 655350;
#pid        logs/nginx.pid; 
error_log  /data/logs/nginx/error.log error;
 events {
    use epoll;     worker_connections  655350; 
    }
 
 http {    
 include       mime.types;    
 default_type  application/octet-stream;    
 charset utf-8;    log_format  main '$remote_addr $server_addr $remote_user [$time_local] $host '                    '"$request" $status $body_bytes_sent $request_time $upstream_response_time '                    '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';                        access_log  /data/logs/nginx/access.log main;
sendfile        on;    
keepalive_timeout 90000;    
server_names_hash_max_size 1024;    
server_names_hash_bucket_size 512;    
client_header_buffer_size    16k;    
large_client_header_buffers 4 64k;    
client_header_timeout  300m;    
client_body_timeout    300m;    
send_timeout          300m;    
tcp_nopush     on;    
tcp_nodelay    on;    
client_max_body_size 100M;   
client_body_buffer_size 50m;   
proxy_connect_timeout 5;   
proxy_send_timeout 15;    
proxy_read_timeout 15;    
proxy_buffer_size 256k;    
proxy_buffers 8 256k;   
proxy_busy_buffers_size 256k;    
proxy_temp_file_write_size 256k;    
proxy_intercept_errors  on;    
proxy_headers_hash_max_size 512;    
proxy_headers_hash_bucket_size 256;    
variables_hash_max_size 512;    
variables_hash_bucket_size 128;    
gzip on;    
gzip_min_length 1100;
gzip_buffers    4 8k;
gzip_comp_level 3;
gzip_http_version 1.0;
gzip_types text/plain application/x-javascript application/json application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
output_buffers 1 32k;    
postpone_output 1460;
gzip_vary on;    
map_hash_max_size 102400;    
map_hash_bucket_size  256;
fastcgi_intercept_errors on;
 
upstream carlosxiao.cc{        
server 192.168.13.43:8080;        
server 192.168.13.44:8080;        
check interval=3000 rise=2 fall=3 timeout=3000 type=http;    
}        
server {         
listen 80;         
server_name carlosxiao.cc;         
location / {             
proxy_pass http://carlosxiao.cc;             
proxy_set_header Host $host;             
proxy_redirect off;             
proxy_set_header X-Real-IP $remote_addr;             
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             
proxy_connect_timeout 60;             
proxy_read_timeout 600;             
proxy_send_timeout 600;        
}        
access_log  /data/logs/nginx/carlosxiao.log;    
}    
}
动静分离
#user  nobody; 
worker_processes  auto; 
#worker_cpu_affinity  auto;
worker_rlimit_nofile 655350;
 
#pid        logs/nginx.pid; 
error_log  /data/logs/nginx/error.log error;
 
events {    
use epoll;     
worker_connections  655350; 
}
 
 
http {    include       mime.types;
 default_type  application/octet-stream;    charset utf-8;    log_format  main '$remote_addr $server_addr $remote_user [$time_local] $host '                    '"$request" $status $body_bytes_sent $request_time $upstream_response_time '                    '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';                        access_log  /data/logs/nginx/access.log main;
sendfile        on;   
keepalive_timeout 90000;    
server_names_hash_max_size 1024;    
server_names_hash_bucket_size 512;    
client_header_buffer_size    16k;    
large_client_header_buffers 4 64k;    
client_header_timeout  300m;    
client_body_timeout    300m;    
send_timeout          300m;    
tcp_nopush     on;   
tcp_nodelay    on;    
client_max_body_size 100M;   
client_body_buffer_size 50m;   
proxy_connect_timeout 5;   
proxy_send_timeout 15;    
proxy_read_timeout 15;    
proxy_buffer_size 256k;    
proxy_buffers 8 256k;    
proxy_busy_buffers_size 256k;   
proxy_temp_file_write_size 256k;    
proxy_intercept_errors  on;    
proxy_headers_hash_max_size 512;    
proxy_headers_hash_bucket_size 256;    
variables_hash_max_size 512;    
variables_hash_bucket_size 128;    
gzip on;    
gzip_min_length 1100;
gzip_buffers    4 8k;
gzip_comp_level 3;
gzip_http_version 1.0;
gzip_types text/plain application/x-javascript application/json application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
output_buffers 1 32k;    postpone_output 1460;
gzip_vary on;    map_hash_max_size 102400;    map_hash_bucket_size  256;
fastcgi_intercept_errors on;

upstream carlosxiao.cc{       
 server 127.0.0.1:10179;    
 }        
 server {         
 listen 80;         
 server_name carlosxiao.cc;         
 location /api {            
 proxy_pass http://carlosxiao.cc;             
 proxy_set_header Host $host;             
 proxy_redirect off;            
 proxy_set_header X-Real-IP $remote_addr;             
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             
 proxy_connect_timeout 60;             
 proxy_read_timeout 600;             
 proxy_send_timeout 600;         
 }        
 
 location ~ .(jsp|jspx|do)?$ {            
 proxy_set_header Host $host;            
 proxy_set_header X-Real-IP $remote_addr;            
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            
 proxy_pass http://carlosxiao.cc;        }                 
 
 #所有静态文件由nginx直接读取不经过tomcat或resin        
 location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|        pdf|xls|mp3|wma)$        {            
 expires 15d;         
 }                 
  location ~ .*.(js|css)?$        {
 expires 1h;        
 }        

 access_log  /data/logs/nginx/carlosxiao.log;    
 }   
 }
【使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值