Nginx 安装与配置
大约 2 分钟
前后端分离开发需要同时启动前端服务和后端服务,那么会出现端口不同导致跨域访问的问题,我们需要使用 Nginx 做代理,消除跨域问题。
window 安装 Nginx 并注册为服务
- 下载稳定版本(Stable version)的 Nginx,我把他解压到了
D:\Users\jcwang\Apps目录下,你可以根据自己的使用习惯来修改 - 下载 WinSW,根据自己的系统选择,一般都是选择
WinSW-x64.exe - 修改文件名为
nginx-service.exe放入nginx.exe所在目录 - 在 nginx 目录下创建
nginx-service.xml,与nginx-service.exe文件名相同
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>D:\Users\jcwang\Apps\nginx-1.21.4\logs</logpath>
<log mode="roll"></log>
<depend></depend>
<executable>D:\Users\jcwang\Apps\nginx-1.21.4\nginx.exe</executable>
<stopexecutable>D:\Users\jcwang\Apps\nginx-1.21.4\nginx.exe -s stop</stopexecutable>
</service>- 执行
nginx-service.exe install安装服务
配置开发环境代理
- 在
Nginx安装目录下找到conf文件夹 - 在
conf目录下创建proxy.conf。这是一个通用配置文件,复制以下内容写入文件中。
#Websocket需要下面三行
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
#后端的Web服务器可以通过X-Real-IP获取用户真实IP
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
#允许客户端请求的最大单文件字节数
client_max_body_size 10m;- 在
80端口的server下加入/basic-paper-cloud、/basic-paper-cloud/api/、/files代理,配置样例如下:
http {
server {
listen 80;
server_name localhost;
location /basic-paper-cloud {
proxy_pass http://localhost:5173/basic-paper-cloud;
include proxy.conf;
}
location /basic-paper-cloud/api/ {
proxy_pass http://localhost:8000/;
include proxy.conf;
}
location /files {
proxy_pass http://localhost:8000/basic-paper-file/files;
include proxy.conf;
}
}
}- 配置完成后,到
Windows启动服务中启动nginx服务