Bonjour,

Voila je rencontre un petit problème avec mon code.
Je n'arrive pas configurer mon vhost apache pour qu'il renvoit les requetes provenant de sub.exemple.com vers api.exemple.com

Le front est en vuejs, le backend avec Nodejs, Express, et socket.io en front et back.

Ce que je fais

Je test depuis une semaine des config, tous les liens de google possible sont passée au violet ;-)

front =>

import io from "socket.io-client";
var socket = io(process.env.VUE_APP_API, {  // url httpS (donc vers :443) requete fait par socket.io en wsS
    transports: ['websocket'], // tester en polling aussi
    secure: true,
    reconnect: true,
    rejectUnauthorized : false
  });

Back =>
server.js

const io = require('socket.io')(server);
io.set('transports',['polling','websocket','flashsocket','htmlfile','xhr-polling','jsonp-polling']);
io.set('origins', 'https://sub.exemple.com');

io.on('connection', (socket) => { ...}

app.js (j'ai commenté Cors() pour laisser le minimum..pareil

app.use(cors({ origin: 'https://sub.exemple.com' , credentials : true})); 

// CORS
/*const whitelist = [ process.env.URL_SITE ]
const corsOptions = {
  origin: function (origin, callback) {
    console.log(whitelist)
    if (whitelist.indexOf(origin) !== -1) {
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
    }
  },
  credentials: true,
  methods: ['GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD']
}

var corsOptions = {
  origin: process.env.URL_SITE,
  optionsSuccessStatus: 200
}

app.use(cors(corsOptions))

// MiddleWare Secure
app.use(helmet())
*/ 

vhost api.exemple.com *80 => 443
vhost api.exemple.com =>

ServerName api.*****.com

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^socket.io          [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /{.*}       wss://localhost:3000/$1  [P,L]

#tester avec polling, avec ws aussi

ProxyPass           /api http://localhost:3000/
ProxyPassReverse    /api http://localhost:3000/

ProxyPass           /socket.io http://localhost:3000/socket.io
ProxyPassReverse    /socket.io http://loacalhost:3000/socket.io

ProxyPass           /socket.io wss://localhost:3000/socket.io
ProxyPassReverse    /socket.io wss://localhost:3000/socket.io

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/api.*****.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/api.*****.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

Ce que je veux

Que mon front discute normalement avec les requetes type https//api.exemple.com et wss://api.exemple.com

Ce que j'obtiens

error 503, error 404, erreur 500, suivant les bidouilles et test que je fais, mais là j'avoue, je crack à tourner en rond
Merci de votre aide.

1 réponse


Personne pour m'aider :-/