인프런 커뮤니티 질문&답변

류지혜님의 프로필 이미지
류지혜

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

도메인 연결하기

[공유목적] nginx 설정 후 쿠키가 전달되지 않을 경우

해결된 질문

작성

·

2.1K

·

수정됨

1

 

작성한 이유(저는 이 문제로 골머리를 앓았어서..)

  • 도메인 설정 후 쿠키가 전달되지 않아 로그인이 되지 않았다가 해결되었습니다

    session 설정 뿐만 아니라 nginx 설정도 확인해야 합니다

    혹시라도 이 문제로 고통받으시는 분이 있다면 해결책이 되길 바랍니다

     

 

backsession 설정

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

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
류지혜님의 프로필 이미지
류지혜

작성한 질문수

질문하기