nginx的使用(windows环境) linux也和此类似
- 去官网下载nginx后解压
- 在当前目录打开cmd窗口输入nginx.exe 即可启动服务
- 若想停止当前服务 输入命令nginx.exe -s stop 快速关闭nginx服务。 (注意使用ctrl+c或者直接关闭黑窗口是不能停止服务的 )
使用nginx来完成请求的转发 负责分配请求的转发到的服务其他命令:
- nginx -s quit 优雅的关闭,优雅是指当一个请求被处理完成之后才被关闭。
- 配置语法检查:nginx -c ./conf/jason.conf -t 可进行配置文件的语法检测。
- nginx -v查看nginx的版本
- nginx -s reload 重新加载配置文件,nginx是支持热部署的,意思就是可以在不停止服务的情况下进行更新部署。
- nginx -s reopen 重新打开日志文件。
nginx的概念
- 例如 一个项目有多个服务 1.基本业务的服务 2.文件上传服务(阿里云oss)
- 前端的请求都统一请求nginx后再由nginx来判断请求转发到哪个服务
配置nginx的请求转发过程
- 配置目录:nginx-1.12.0/conf/nginx.conf
- 修改nginx的配置文件 把nginx的启动服务端口改为81 避免端口冲突
- 配置nginx的请求转发规则(注意需要在http{}括号里面添加或者修改才有用 不是https)最好复制下面的模板来修改!!!
- 修改前端的api地址统一为nginx的地址
nginx.conf 配置模板
如果需要做文件上传的功能 :
- 需要配置nginx的最大上传文件的大小设置
- 配置nginx上传文件大小,否则上传时会有 413 (request entity too large) 异常
- 打开nginx主配置文件nginx.conf,找到http{},添加 client_max_body_size 1024m;
#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 81; 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; #} } #配置nginx的请求转发规则 server { listen 9001;#监听端口 server_name localhost;#主机 #请求地址url的匹配路径(匹配规则) 只要请求地址里面包含edu_service的就会转发到http://location:8001 location ~ /edu_service/ { proxy_pass http://localhost:8001; } #请求地址url的匹配路径(匹配规则) 只要请求地址里面包含eduoss的就会转发到http://location:8002 location ~ /eduoss/ { proxy_pass http://localhost:8002; } } # 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; # } #} }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论