c9 / core

Cloud9 Core - Part of the Cloud9 SDK for Plugin Development https://c9.github.io/core/ https://c9.io
Other
2.56k stars 921 forks source link

Use a different URL. #11

Open BernardXiong opened 9 years ago

BernardXiong commented 9 years ago

Hi, In C9, how can I use a different URL but http://localhost:8181/ide.html. I would like to use it as: http://localhost:8181/c9/ide.html

Then I can setup the SDK environment together with Apache. Any settings? Thank you.

javruben commented 9 years ago

Check out this explanation for a way to have apache connect to cloud9 by proxying the url. http://blog.viniciusprado.org/how-to-install-and-configure-cloud9-in-your-own-server/

BernardXiong commented 9 years ago

Thank for your reply. I have read your mentioned page. But I don't like the '/' root as the root of cloud9 and it's hard to create a new domain too. Any other way? Thank you so much.

javruben commented 9 years ago

I am not sure. You'd have to check the code. I'd welcome a patch for this.

BernardXiong commented 9 years ago

OK, thank you. I will check the code later.

ClashTheBunny commented 9 years ago

Why not just rewrite? For NGINX from here:

location /c9/ {
    rewrite ^/c9(/.*)$ $1 break;
    proxy_pass  http://127.0.0.1:8181/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_redirect    off;
}
balthild commented 9 years ago

same problem with me.

nightwing commented 9 years ago

Simply using nginx rewrite might not work because client doesn't use relative urls. https://github.com/c9/core/blob/master/settings/standalone.js https://github.com/c9/core/blob/master/plugins/c9.vfs.standalone/standalone.js#L55 https://github.com/c9/core/blob/master/plugins/c9.static/cdn.js#L29 likely need to be modified to allow this

dabura667 commented 8 years ago

I tried accomplishing this solely with apache settings...

No dice...

I almost got it by regexing the referer request header as a condition for rewriting to proxy and add the new base path...

Would be nice if this was supported out of box.

abalter commented 7 years ago

Hello. This is a really important feature. I need to be able to run the editor on a shared hosting server where I do web development. I can't hog up port 80, and there are no other ports open (except 465).

matthijsbreemans commented 7 years ago

I would like to see this as well

taemon1337 commented 6 years ago

I was able to get pretty close using node's 'express-http-proxy' like this:

app.use('/ide|/static|/configs|_ping|/vfs', proxy(IDE_URL, {
  proxyReqPathResolver: function (req) {
    let u = url.parse(req.originalUrl).path.replace('/ide', '')
    console.log('[IDE] ' + req.originalUrl + ' -> ' + IDE_URL + u)
    return u
  }
}))

This would load all the content correctly, however there were definitely issues and was unusable, lots of loading without ever working.

Would love to see this issue resolved!

hvintik commented 6 years ago

Hello,

Any news on when it will be fixed?

Thank you,

abalter commented 6 years ago

@hvintik -- I don't think it's a matter of being "fixed." It's really a feature request, not a bug report.

However, I am interested in the same thing because I want to use c9 on shared hosting.

Here is another thread about it.

https://community.c9.io/t/run-cloud9-under-subdirectory/8152

I still haven't tried the subdomain technique.

Also look at these:

https://stackoverflow.com/questions/48635552/how-to-programmatically-communicate-with-apache

https://stackoverflow.com/questions/48673359/how-to-properly-return-http-response-from-python-requests-library-want-a-python

mota57 commented 6 years ago

wow I had more than a day on this! :(

Cesarot commented 6 years ago

I have the same issue , it would be nice that by the command:
node server.js -p 7000 -a : -w '/var/www/html' --listen 0.0.0.0 & have a option for change the url of c9 server.

genestealer commented 6 years ago

Check out this explanation for a way to have apache connect to cloud9 by proxying the url. http://blog.viniciusprado.org/how-to-install-and-configure-cloud9-in-your-own-server/

This is now: http://vncprado.github.io/how-to-install-and-configure-cloud9-in-your-own-server/

genestealer commented 6 years ago

I really want this, as my Apache proxy applies the SSL cert to all internal web pages, so I need to connect via https://mywebsite/somesubdirectory/ide.html

jnoxon commented 6 years ago

This is a blocker for me, too. I need to run this behind an NGINX reverse proxy on a different path. Surprised to find it isn't possible.

moppi79 commented 6 years ago

this is nice IDE, at home i can use it but from work i have only Comunicate over port 80 and i have 2 Systems, a Produktive system include a Proxy and Dev system with IDE.

it is very frustrating that i cannot a simple

ProxyPass /c9ide/ http://192.168.x.x:8181/ ProxyPassReverse /c9ide/ http://192.168.x.x:8181/

mrfoxbit commented 5 years ago

I have the same issue. How to run it behind an NGINX reverse proxy?

daozhenpan commented 5 years ago

I have tried to change some profiles and it does work in my cloud9.There are files which I have modyfied.I hope it will help someone. 为了满足 相对路径要求 需要的更改的源码内容 server端:变更带有特征的路由

get/post请求路由规则 修改api.get规则

/c9sdk/plugins/c9.vfs.standalone/standalone.js

第三方插件的静态文件响应 修改section

/c9sdk/plugins/c9.static/cdn.js

cloud9自己的静态文件响应

/c9sdk/node_modules/connect-architect/connect.static/static-plugin.js

响应"vfs"路径的请求

/c9sdk/plugins/c9.vfs.server/vfs.server.js

client端的相对路径变更

静态资源:dark.css(主题)文件请求路径

/c9sdk/plugins/c9.ide.layout.classic/preload.js

静态资源:c9用到的第三方静态资源请求携带上下文

/c9sdk/settings/standalone.js

静态资源:c9 自己的某些静态资源请求方式变更(for clear)

/c9sdk/plugins/c9.static/connect-static.js

其余请求:vfs_update,_ping等请求发送使用相对路径

/c9sdk/plugins/c9.vfs.client/endpoint.js

html页面

欢迎页面:loading-flat.css 使用相对路径

/c9sdk/plugins/c9.ide.server/views/flat-load-screen.html

欢迎页面:文件mini_require.js /require_config.js 使用相对路径

/c9sdk/plugins/c9.vfs.standalone/views/standalone.html.ejs

StudioEtrange commented 3 years ago

/plugins/c9.static/connect-static.js

Hi @daozhenpan Could you be more specific and tell us what changed you made in those files ? thank you very much !