-
카테고리
-
세부 분야
풀스택
-
해결 여부
해결됨
[공유목적] nginx 설정 후 쿠키가 전달되지 않을 경우
23.02.22 15:09 작성 23.02.22 15:12 수정 조회수 1.61k
1
작성한 이유(저는 이 문제로 골머리를 앓았어서..)
도메인 설정 후 쿠키가 전달되지 않아 로그인이 되지 않았다가 해결되었습니다
session
설정 뿐만 아니라nginx
설정도 확인해야 합니다혹시라도 이 문제로 고통받으시는 분이 있다면 해결책이 되길 바랍니다
back
쪽 session
설정
if (process.env.NODE_ENV === "production") {
app.use(morgan("combined"));
app.use(hpp());
app.use(helmet());
app.set("trust proxy", 1); //배포 시 추가
app.use(
cors({
origin: "https://engword.shop", //local "http://localhost:3000"
credentials: true,
})
);
} else {
app.use(morgan("dev"));
app.use(
cors({
origin: true,
credentials: true,
})
);
}
passportConfig();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(
session({
saveUninitialized: false,
resave: false,
secret: process.env.COOKIE_SECRET,
proxy: true, //배포 시 추가
cookie: {
httpOnly: true,
secure: process.env.NODE_ENV === "production" ? true : false, //https 적용 시 true
sameSite: process.env.NODE_ENV === "production" ? "none" : false,
domain: process.env.NODE_ENV === "production" && ".engword.shop",
},
})
);
nginx 설정
back
에서 설정한 nginx입니다
sudo vim /etc/nginx/nginx.conf
server {
server_name api.engword.shop;
location / {
proxy_set_header HOST $host;
//추가
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.0:3000 //http로 설정할 것
proxy_redirect off;
}
//아래는 certbot 내용
}
위와 같이 설정을 바꾼 후 nginx를 다시 실행합니다
sudo systemctl restart nginx
pm2
로 진행 시 pm2
를 껏다 키거나, pm2 재시작을 하시면 됩니다.
pm2 껏다 키는 경우
sudo npx pm2 kill
npm start (혹은 sudo npm start)
pm2 재시작
sudo npx pm2 reload all
답변을 작성해보세요.
답변 0