我的设置如下所示:
我想要的是我的api和前端都在子域上。tld,其中/api反向代理到我的api和其他所有要转到vuejs开发服务器的内容。
我当前的nginx配置符合我的需要,但它阻止vue devserver连接:
server {
listen 80;
server_name sub.domain.tld;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name sub.domain.tld;
ssl_certificate /opt/ssl/domain.tld.pem;
ssl_certificate_key /opt/ssl/domain.tld-key.pem;
include snippets/ssl.conf;
access_log /tmp/nginx.log combined;
add_header 'Access-Control-Allow-Origin' "*" always;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,X-Refresh-Token';
location /auth {
if ($request_method = OPTIONS ) {
add_header "Access-Control-Allow-Origin" "*" always;
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Refresh-Token";
return 200;
}
proxy_pass http://localhost:2394;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
if ($request_method = OPTIONS ) {
add_header "Access-Control-Allow-Origin" "*" always;
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Refresh-Token";
return 200;
}
proxy_pass http://localhost:8935;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
vue.config.js:
module.exports = {
devServer: {
disableHostCheck: true,
proxy: 'https://sub.domain.tld/'
}
}
唯一的问题是,我仍然得到错误,我猜实时错误显示/实时刷新包括在vue-cli(法语对不起,但它基本上是一个CORS错误消息):
Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://192.168.1.12:8935/sockjs-node/info?t=1609950092054. Raison : échec de la requête CORS.
所以最后我得到了它的工作与以下设置:
我让vue-cli/webpack知道我的浏览器将从给定的网址访问:
vue.config.js
module.exports = {
publicPath: '/app/', // Only required if the app is not at the root
devServer: {
"public": "sub.domain.tld"
}
}
那么这只是一个正确配置nginx的例子。在这种情况下不需要CORS,因为所有内容都是从同一个域提供的。
server {
listen 80;
server_name sub.domain.tld;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name sub.domain.tld;
ssl_certificate /opt/ssl/domain.tld.pem;
ssl_certificate_key /opt/ssl/domain.tld-key.pem;
include snippets/ssl.conf;
access_log /tmp/nginx.log combined;
# My golang backend
location / {
proxy_pass http://localhost:1635;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
# My VueJS app
location /app {
proxy_pass http://localhost:8080;
}
# Access for webpack WS for debug
location /sockjs-node {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
# Since I'm building my app on a sub-path I want the root to redirect to it
location = / {
return 301 $scheme://$host/app;
}
}
我是这样做的: 我做错了什么?我将非常感谢任何帮助。 更新: 道格·史蒂文森的回答有所帮助。添加({origin:true})修复了此问题,我还不得不将更改为,但我一开始完全没有看到。
问题内容: 我已经安装并正在运行PHP(版本:5.3.17),并且我想切换到mysqlnd(在phpinfo中,mysqlnd根本不存在)。 我读过为了进行设置,您需要更新命令: 当我尝试安装它时,出现错误: 问题答案: 该命令是源代码编译过程的一部分。 您可以从源代码进行编译,也可以通过软件包管理器进行安装。我想在您的情况下,包管理器更可取。 正如程序包管理器抱怨的那样,您不能同时安装和安装。
问题内容: 我正在尝试在Ubuntu中为PHP安装sqlite3。 我安装并编辑为包含sqlite3扩展。 当我跑步时我得到 如上所示,已启用。但是,当我使用时,出现“找不到类SQLite3” 问题答案: 尝试: 那对我有用。
我正在使用带有Spark 2.0.0的“预览”Google DataProc Image 1.1。要完成我的一个操作,我必须完成一个笛卡尔乘积。从版本 2.0.0 开始,创建了一个禁止笛卡尔产品的 Spark 配置参数 (spark.sql.cross Join.enabled) 并抛出异常。如何设置 spark.sql.crossJoin.enabled=true,最好使用初始化操作?
我在独立配置中使用Keycloak-8.0.1。我正在尝试为运行在我的测试机器(A.B.C.D)上的Keycloak服务器启用SSL/HTTPS,将从机器(X.Y.Z.P)请求令牌请求。 (生成的令牌会有任何CORS/CSRF问题吗?看起来是的?SSL上的Keycloak会帮助解决这个问题吗?)不过,我需要启用SSL。 于是就开始了https://www.keycloak.org/docs/lat
我使用的是Couchbase SDK和Spring boot 2.6.x版本。我使用的是spring spring-data-couch base:jar:4 . 4 . 0,它又有com . couch base . client:Java-client:jar:3 . 3 . 0依赖项。问题是,当尝试执行cluster.query()方法时,我需要查看正在执行什么查询。我需要启用调试日志。然而