直到最近,我还有一堆虚拟网站设置如下:
<VirtualHost 127.0.0.1:1234>
...
Run Code Online (Sandbox Code Playgroud)
这适用于在我使用Linux桌面的本地计算机上进行测试.为了测试MS和资源管理器如何从我的Windows笔记本电脑显示我的页面,我将其更改为
<VirtualHost *:1234>
...
Run Code Online (Sandbox Code Playgroud)
这也很好,在我的笔记本电脑的IE 上从http:// [mylinuxservername]:1234调用网站.但是,我想将该通配符限制为本地局域网.插入任何ip,如192.nnn.nnn.nnn或192.*.*.*,其中通配符在上面导致在Windows机器上403 Forbidden.本地服务器在我的Linux机箱上仍能正常工作:
<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
...
Run Code Online (Sandbox Code Playgroud)
要么
<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
...
Run Code Online (Sandbox Code Playgroud)
无论如何,我不喜欢上面第二个配置示例中的那个通配符.提示任何人?
我有一个网站,我希望用户注册以获得自己的子域名.此子域是虚拟的,每个子域使用相同的Web服务器文件.
我使用PHP和Apache,我知道虚拟主机,但我想知道我需要把vhosts代码放在哪里.首先,我无法访问httpd.conf.其次,我希望在注册时自动完成.
我读过有关虚拟主机的内容,但没有找到任何可以解答我问题的内容.有没有人可以解释我这一切是如何协同工作的,或者知道我在哪里可以找到答案?
这是我通过做一些搜索所学到的.这些东西来自很多地方.请指出任何遗漏的东西.(我还没试过这个,只是想澄清一下我要做什么)
对于托管我需要一个静态IP.但我的ISP提供动态IP.所以我用DynDNS的(如在CUGA劝这个).我相信这将通过将我选择的域名映射到我当前(动态分配的)实际IP来解决我的动态IP问题.
接下来是设置我的Xampp服务器.为此,我需要我的计算机的本地IP,我可以使用ipconfig(或ipconfig/all获取完整的详细信息)在Windows命令提示符下(假设本地IP为192.168.1.6).现在我必须编辑位于xampp /中的httpd.conf apache/conf文件夹."ServerName"字段必须更改为192.168.1.6:80.
这应该允许使用我从DynDNS获得的主机名的任何人访问我的计算机xampp/htdocs文件夹.如果缺少部件,请填写我的信息.
现在我想更改我的客户端可以连接到我的计算机的端口以及我将使用它来托管的文件夹.
我知道我必须首先进行protforwarding然后配置apache才能使用该端口而不是80.有人可以解释我如何配置apache以使用新端口.
我希望我的客户使用我从DynDNS获得的主机名,只访问我指定的文件夹(例如:xampp/htdocs/public),而我可以使用http:// localhost / ... 访问xampp/htdocs中的任何文件. .我认为这是虚拟主机的作用.有人可以告诉我如何做到这一点.
是否有可能出现的安全问题的解决方案以及如何最大限度地减少安全问题?
谢谢.....
是否可以根据请求URL的主机部分指定Ruby on Rails路由?
在config/routes.rb中,我有
root :to => 'entities#index'
Run Code Online (Sandbox Code Playgroud)
但我想使用相同的代码库来提供多个站点,每个站点都有自己的默认控制器.
所以我正在尝试建立一个机架式云服务器来托管具有单个IP的多个站点(而不是服务器).我在Ubuntu 12.04 LTS服务器上安装了Virtualmin/Webmin.我创建了目录/ var/www/sites/testsite.然后我使用以下设置在Webmin-> Servers-> Apache Webserver下创建了一个虚拟主机:
Address: Any
Port: 80
Document Root: /var/www/sites/testsite
Server Name: testsite.com
Run Code Online (Sandbox Code Playgroud)
然后,为了测试它,我在本地机器上编辑了hosts文件并添加了
[my.server.ip.address] testsite.com
Run Code Online (Sandbox Code Playgroud)
然后在我的浏览器中访问testsite.com并且问题是它正在加载默认站点(在/ var/www)而不是我刚刚创建的虚拟站点(我通过在/ var/www和/中添加不同的index.html文件来验证这一点无功/网络/网站/测试网站).
以下是在/etc/apache2/sites-available/webmin.1372454178.conf中创建的webmin指令
DocumentRoot /var/www/sites/testsite
<Directory "/var/www/sites/testsite">
allow from all
Options +Indexes
</Directory>
ServerName testsite.com
ServerAlias www.testsite.com
Run Code Online (Sandbox Code Playgroud) 我一直想知道为什么所有不匹配的流量都流向第一个VirtualHost而不是httpd.conf中的默认站点配置?
假设httpd.conf没有被编辑。
我创建一个名为 /etc/httpd/conf.d/vhost.conf
具有以下内容:
<VirtualHost *:80>
ServerName website.com
ServerAlias www.website.com
DocumentRoot "/site1"
<Directory "/site1">
AllowOverride All
Require all granted
</Directory>
Some Rules Here
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/site2"
<Directory "/site2">
AllowOverride All
Require all granted
</Directory>
Some Rules Here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,如果您发送对stackoverflow.com的请求,则无论过滤器是什么,而不是httpd.conf中的默认网站,都将被过滤到第一个虚拟主机中
我想念什么?
我的 Nginx 站点配置文件中有以下内容:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 80;
server_name example2.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass …Run Code Online (Sandbox Code Playgroud) 我有一个网络应用程序,可以使用相同的代码在多个国家/地区的域上运行。Apache 配置了别名。除了配置单独的 SSL 证书这一点之外,这是可行的:
ServerAlias *.server-at
ServerAlias *.server-ch
ServerAlias *.server-es
SSLEngine on
SSLCertificateFile /etc/ssl/certs/rex.server-de.crt
SSLCertificateKeyFile /etc/ssl/private/rex.server-de.key
Run Code Online (Sandbox Code Playgroud)
apache2 是否可以在虚拟主机容器内配置多个 SSL 证书?
我有两个域 example1.com 和 example2.com,在同一 IP 12.345.678.90 上运行。
现在我想完全禁用通过 12.345.678.90 的 https 访问。
我尝试这样做(紧凑的代码,没有花哨的东西)
<VirtualHost *:443>
SSLEngine off
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
ServerName example1.com
DocumentRoot /var/www/html/example1
SSLCertificateFile /etc/.../fullchain.pem
SSLCertificateKeyFile /etc/.../privkey.pem
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
ServerName example2.com
DocumentRoot /var/www/html/example2
SSLCertificateFile /etc/.../fullchain.pem
SSLCertificateKeyFile /etc/.../privkey.pem
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在,当我禁用默认情况下捕获所有内容的第一个块时,两个示例站点都可以工作。但是,如果我启用它,就没有任何作用了。实际上,这只是为 443 复制的端口 80 解决方案。这似乎是 SSL 特定问题(编码的请求数据)。
如何阻止 https 上的“IP 访问”?或者,配置我的设置的常用方法是什么?
背景是:创建基于 IP 的 SSL 证书甚至没有标准化,因此允许这种请求是没有意义的。
我遇到了一个似乎很常见的问题,但是我发现的任何解决方案似乎都不适合我的情况。
我正在尝试设置虚拟主机,以便可以通过转到“ walkpeakdistrict.local”来访问Laravel安装的公共文件,但是当我将此地址输入到Google Chrome中时,我总是会重定向到该地址的xampp信息中心“ https://walkpeakdistrict.local/dashboard/ ”。
我已经在以下xampp目录中安装了Laravel:c:/ xampp / htdocs / walkpeakdistrict_uk。
我的“ C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf”设置如下:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/walkpeakdistrict_uk/public"
ServerName walkpeakdistrict.local
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
而且我将“ C:\ Windows \ System32 \ drivers \ etc \ hosts”设置如下:
127.0.0.1 localhost
127.0.0.1 walkpeakdistrict.local
Run Code Online (Sandbox Code Playgroud)
如果有人能对此问题提供任何见解,我将不胜感激。
virtualhost ×10
apache ×7
apache2 ×2
php ×2
ssl ×2
xampp ×2
centos ×1
certificate ×1
dynamic-ip ×1
httpd.conf ×1
laravel ×1
linux ×1
mod-ssl ×1
nginx ×1
redirect ×1
routes ×1
tls1.2 ×1
webmin ×1
webserver ×1