小编kee*_*ahs的帖子

nginx反向代理cookie转发

我有 3 个 Heroku 应用程序

  1. 前端反应
  2. 后端节点
  3. 反向代理nginx

  1. 对反向代理/api/?(.*) 的调用被转发到后端
  2. 其余对反向代理的所有调用都转发到前端

代码/etc/nginx/conf.d/default.conf

upstream frontend {
    server $FRONTEND_URL;
}

upstream backend {
    server $BACKEND_URL;
}

server {
    listen $PORT;

    location / {
        proxy_pass http://frontend;
        proxy_set_header Host $FRONTEND_URL;
    }

    location /api {
        rewrite /api/(.*) /$1 break;
        proxy_pass http://backend;
        proxy_set_header Host $BACKEND_URL;
    }

}
Run Code Online (Sandbox Code Playgroud)

问题

我正在使用 cookie 进行身份验证,但后端设置的 cookie 没有被“转发”

我的代码


现在它可以工作了,我做了一些更改

  1. secure: false在我的节点应用程序中更改为对我来说是这样(稍后可能会添加 tls 证书)
  2. @mariolu 建议的修复

现在看起来像

location /api {
    rewrite …
Run Code Online (Sandbox Code Playgroud)

nginx heroku node.js docker reactjs

6
推荐指数
1
解决办法
1万
查看次数

多线程多锁似乎比单锁慢

我正在阅读 Java 中的多线程和使用同步块。假设我有两个不同的、独立的同步块。我可以让它们并行运行,方法是为两个同步块分别使用一个锁。但是如果我对两个同步块使用相同的锁,我认为在给定时间只有一个可以运行。我这样想有错吗?如果没有,为什么我会得到以下奇怪的结果?

假设我有两个独立的操作,increment1 和 increment2,每个操作由不同的线程调用。

public class AppMultipleSynchronization {

    private static int counter1 = 0;
    private static int counter2 = 0;

    private static Object lock1 = new Object();
    private static Object lock2 = new Object();

    public static void increment1() {
        synchronized (lock1) {
            counter1++;
        }
    }

    public static void increment2() {
        synchronized (lock2) {
            counter2++;
        }
    }

    public static void main(String[] args) {

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking

5
推荐指数
1
解决办法
102
查看次数

标签 统计

docker ×1

heroku ×1

java ×1

locking ×1

multithreading ×1

nginx ×1

node.js ×1

reactjs ×1