我的nginx部署了一个django项目还部署了一个vue前端,两个都配置了域名,可是两个域名都会访问到django的项目
server { listen 80;
server_name www.****.com;
charset utf-8;
access_log /var/log/nginx/logindemo_access.log;
error_log /var/log/nginx/logindemo_error.log;
client_max_body_size 75M;
location /media {
alias /tmp/ssr/media;
}
location /static {
alias /tmp/ssr/static;
}
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
}
server {
listen 8080;
server_name www.***.club;
root /tmp/dist;
index index.html;
}
两个域名都是通过cloudflare解析的,然后在nginx部署,但是两个域名都会访问到一个项目
然后我将第二个配置的端口从8080改成80就可以通过域名访问第二个项目了,这是什么原因导致的
回答:
前后端分离的项目,前端和后端可以用不同的域名,也可以用相同的域名
一、前端使用www.xxx.com,后端使用api.xxx.com
server { server_name www.xxx.com;
location / {
root /tmp/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
}
server {
server_name api.xxx.com;
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
}
二、前端使用www.xxx.com,后端使用www.xxx.com/api/
1、uwsgi如果是使用http方式可以这样配
server { server_name www.xxx.com;
location / {
root /tmp/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://127.0.0.1:8000/;
}
}
2、uwsgi如果是使用socket方式的话需要这样配
server { server_name www.xxx.com;
location / {
root /tmp/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://127.0.0.1:8080/;
}
}
server {
listen 8080;
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
}
回答:
通过http访问一个ip或者域名的时候如果没有指定端口,默认是80端口
以上是 我的nginx部署了一个django项目还部署了一个vue前端,两个都配置了域名,可是两个域名都会访问到django的项目 的全部内容, 来源链接: utcz.com/a/156366.html