早就听说了 nginx 的大名,同时最近的好多处问题都说最好用 nginx 反向代理解决,因此学习一下。
封面图《見上げてごらん、夜空の星》
引言
nginx(engine X)是一个高性能 web 服务器,也是一个反向代理服务器。对于用户来说只知道反向代理服务器,而不知道其背后的服务器集群,因此可以解决跨域问题。
常用命令
启动
1 2
| [nginx place] -c [nginx conf]
|
对于 windows 系统需要下面指令,另外 windows 系统需要
查询进程
1 2 3 4
| tasklist /fi "imagename eq nginx.exe"
ps -ax | grep nginx
|
其他命令
1 2 3 4 5 6 7 8 9
| nginx -s stop nginx -s quit nginx -s reload nginx -s reopen nginx -t nginx -T nginx -v nginx -V
|
配置文件解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
worker_processes 1;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { listen 80; server_name localhost;
location / { root html; index index.html index.htm; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
}
}
|
实战
本次使用 nginx 来代理 hexo 服务器
首先启动 hexo
启动 nginx,完整配置文件见后文
1
| C:\Users\14642\nginx-1.20.1\nginx.exe -c D:\LearnCode\qxdn.github.io\nginx.conf
|
此时打开浏览器访问 localhost 既可以发现 80 端口变成了博客,反向代理成功。
nginx 完整配置文件
注意里面的 proxy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
worker_processes auto;
events { worker_connections 1024; }
http { include C:/Users/14642/nginx-1.20.1/conf/mime.types; default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { listen 80;
server_name localhost; location / { proxy_pass http://127.0.0.1:4000; proxy_set_header Host $host:$server_port; } } }
|
总结
本次实验初步完成 nginx 代理博客,后续将进一步完成 docker 化,前后端分离和子域名利用。
参考文献
[1]nginx doc
[2] 一篇文章上手 nginx