启动闪退:https://blog.csdn.net/weixin_66383346/article/details/132622156
1.下载安装nginx 下载地址:https://nginx.org/en/download.html windows版 :nginx/Windows-1.27.0
解压后必须放在没有中文,没有空格的目录中
2.启动nginx,直接双击nginx.exe 或者 cmd进入安装目录,执行命令:start nginx ,然后访问 http://localhost/ ,会出现 Welcome to nginx! 就成功了。
这个版本默认端口号80,很可能已经被占用,被占用就没法正常启动,需要修改配置文件 /conf/nginx.conf 把端口改成空闲的,然后加上端口再访问 http://localhost:88/
注意:安装目录文件夹必须具有写入权限,不然也没法启动,nginx要写日志的。
server { listen 88; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #后面还有其他配置,我只截取了这些... }
3.nginx常用命令
启动服务:start nginx 退出服务:nginx -s quit 强制关闭服务:nginx -s stop 重载服务:nginx -s reload (重载服务配置文件,类似于重启,服务不会中止) 验证配置文件:nginx -t 使用配置文件:nginx -c "配置文件路径" 使用帮助:nginx -h
4.部署前端项目,比如我的前端项目发布后的目录是 D:\VueSite
修改nginx.conf的location 的 root 配置,指定前端项目的目录;index 是用来指定首页的,vue编译完了首页就是index.html 这里不用改。
然后执行命令 nginx -s reload 重启nginx ,访问 http://localhost:88/ 就可以正常访问vue项目了
server { listen 88; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root D:\VueSite; index index.html index.htm; } #后面还有其他配置,我只截取了这些... }
5.nginx同时部署多个前端项目,只需要配置多个server节点,端口改成不一样的,这样就可以了。
server { listen 88; server_name localhost; location / { root D:\VueSite; index index.html index.htm; } } server { listen 89; server_name localhost; location / { root D:\VueSite2; index index.html index.htm; } } server { listen 90; server_name localhost; location / { root D:\VueSite3; index index.html index.htm; } }
6.nginx配置反向代理
http { server { listen 80; server_name www.from1.com www.from2.com; location / { proxy_pass http://www.to.com; 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_set_header X-Forwarded-Proto $scheme; } } }
配置解释:
listen 80; 表示Nginx监听80端口。
location / 块定义了对于所有请求的处理。
proxy_pass http://upstream_server; 上游服务器的地址。
proxy_set_header 指令用来设置转发给上游服务器时的请求头,以确保上游服务器能获取到正确的原始请求信息。
server_name 指定服务器名(域名)列表,多个的话中间用空格分隔开,支持正则(通配符 *.example.com),列表中靠前的优先匹配。如果不配置,默认server_name "" 会先去寻找其他server的配置,如果没找到,最后才使用 server_name 为空的配置节。
Nginx选用server的规则:
当Nginx在某个端口收到一个HTTP请求时,会交给监听该端口的server处理。
如果监听该端口的server有多个,则取决于请求头的Host与哪个server的域名(server_name)匹配。
如果没有匹配的域名,或者请求头的Host是IP地址,则交给监听该端口的默认server处理。
选用了server之后,Nginx会寻找与HTTP请求的URL匹配的location,决定如何做出响应。
如果监听一个端口的server有多个,则最前面定义的那个是默认server。也可以手动指定:server { listen 80 default_server; ...}