1、nginx文件结构

  1. ... #全局块
  2. events { #events块
  3. ...
  4. }
  5. http #http块
  6. {
  7. ... #http全局块
  8. server #server块
  9. {
  10. ... #server全局块
  11. location [PATTERN] #location块
  12. {
  13. ...
  14. }
  15. location [PATTERN]
  16. {
  17. ...
  18. }
  19. }
  20. server
  21. {
  22. ...
  23. }
  24. ... #http全局块
  25. }
  • 1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  • 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  • 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  • 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  • 5、location块:配置请求的路由,以及各种页面的处理情况。

2、常用调优

  1. #常用调优
  2. sendfile on;
  3. #tcp_nopush on;
  4. #keepalive_timeout 0;
  5. keepalive_timeout 65;
  6. #压缩
  7. gzip on;
  8. gzip_comp_level 5;
  9. gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
  10. #文件大小
  11. client_max_body_size 300m;
  12. #SSL性能调优
  13. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  14. ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
  15. ssl_prefer_server_ciphers on;
  16. ssl_session_cache shared:SSL:10m;
  17. ssl_session_timeout 10m;

3、静态http配置

  1. server {
  2. listen 80;
  3. server_name localhost;
  4. client_max_body_size 1024M;
  5. location / {
  6. root /usr/.../; //通过/将所有的请求,转发给root的路径处理
  7. index index.html;
  8. }
  9. location /h5/ {
  10. alias /usr/h5/.../; //通过/将所有的请求,转发给root的路径处理
  11. index index.html;
  12. }
  13. }

4、反向代理与跨域配置

  1. # 反向代理与跨域配置
  2. server {
  3. listen 80;
  4. server_name localhost; #访问localhost的时候相当于访问 http://localhost:8080
  5. client_max_body_size 1024M;
  6. location / {
  7. # 设置跨域
  8. add_header Access-Control-Allow-Origin *;
  9. add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
  10. add_header Access-Control-Allow-Headers *;
  11. # 代理到指定端口
  12. proxy_pass http://xxx.xx.xx.xx:xxxx;
  13. # options 快速返回 204
  14. if ($request_method = 'OPTIONS') {
  15. return 204;
  16. }
  17. }
  18. }

5、ssl配置

  1. # ssl配置
  2. ####################### git start #############################
  3. server {
  4. listen 80;
  5. server_name git.zymapp.com;
  6. location / {
  7. return 301 https://git.zymapp.com;
  8. }
  9. }
  10. server {
  11. listen 443 ssl;
  12. server_name git.zymapp.com;
  13. ssl_certificate /usr/local/nginx/https/zymapp.com/fullchain.cer;
  14. ssl_certificate_key /usr/local/nginx/https/zymapp.com/private.key;
  15. ssl_trusted_certificate /usr/local/nginx/https/zymapp.com/ca.cer;
  16. location / {
  17. proxy_pass http://127.0.0.1:3000;
  18. }
  19. }
  20. ####################### git end #############################

6、nacos配置

  1. ############################################################
  2. ###############--------nacos start--------##################
  3. ############################################################
  4. server {
  5. listen 80;
  6. server_name seven.nacos.zymapp.com;
  7. location / {
  8. proxy_pass http://localhost:8848/nacos/;
  9. }
  10. }
  11. ###############--------nacos end--------##################
  12. ##########################################################

7、api网关集群配置

  1. ##########################################################
  2. ###############--------api start--------##################
  3. ##########################################################
  4. upstream gatewaycluster{
  5. server 192.168.0.166:18001;
  6. server 192.168.0.94:18001;
  7. }
  8. server {
  9. listen 80;
  10. server_name seven.api.zymapp.com;
  11. location / {
  12. proxy_pass http://gatewaycluster/;
  13. }
  14. }
  15. ################--------api end--------###################
  16. ##########################################################

8、git配置

  1. ####################### git start #############################
  2. #server {
  3. #listen 80;
  4. #server_name git.zymapp.com;
  5. #location / {
  6. #return 301 https://git.zymapp.com;
  7. #}
  8. #}
  9. #server {
  10. #listen 443 ssl;
  11. #server_name git.zymapp.com;
  12. #ssl_certificate /usr/local/nginx/https/zymapp.com/fullchain.cer;
  13. #ssl_certificate_key /usr/local/nginx/https/zymapp.com/private.key;
  14. #ssl_trusted_certificate /usr/local/nginx/https/zymapp.com/ca.cer;
  15. #location / {
  16. #proxy_pass http://127.0.0.1:3000;
  17. #}
  18. #}
  19. ####################### git end #############################
  20. ######################## git start ##########################
  21. server {
  22. listen 80;
  23. server_name git.linzhi888.top;
  24. location / {
  25. proxy_pass http://127.0.0.1:3000;
  26. }
  27. }
  28. ######################## git end #############################

9、web网站配置

  1. ####################### kjcx start #############################
  2. server {
  3. listen 80;
  4. server_name kjcx.zymapp.com;
  5. location / {
  6. return 301 https://$server_name$request_uri;
  7. }
  8. }
  9. server {
  10. listen 443 ssl;
  11. server_name kjcx.zymapp.com;
  12. ssl_certificate /usr/local/nginx/https/zymapp.com/fullchain.cer;
  13. ssl_certificate_key /usr/local/nginx/https/zymapp.com/private.key;
  14. ssl_trusted_certificate /usr/local/nginx/https/zymapp.com/ca.cer;
  15. try_files $uri $uri/ /index.html;
  16. root /home/official/kjcx;
  17. index index.html;
  18. }
  19. ####################### kjcx end #############################
  1. ####################### vue3-elementplus-admin-web start #############################
  2. server {
  3. listen 1122;
  4. server_name 127.0.0.1:1122;
  5. try_files $uri $uri/ /index.html;
  6. root /home/sftp-root/vue3-admin-ftp/web;
  7. index index.html;
  8. }
  9. ####################### vue3-elementplus-admin-web end #############################