我有一个nginx运行实例,它服务于几个网站.第一个是服务器IP地址上的状态消息.第二个是管理控制台admin.domain.com.这些工作很棒.现在我想要所有其他域请求转到单个index.php- 我有很多域和子域,并且在nginx配置中列出它们是不切实际的.
到目前为止,我已经尝试设置server_name到*,但未能作为一个无效的通配符.*.*直到我添加其他服务器块,然后我猜它与它们冲突.
有没有办法在定义其他网站后在nginx中运行catch-all服务器块?
NB我不是垃圾邮件发送者,这些是真正的有用内容的网站,它们只是来自数据库中的相同CMS!
我对这两个服务器变量之间的区别感到困惑.检查IIS文档,它指出: -
返回Web服务器的名称.这可能与SERVER_NAME相同,也可能不同,具体取决于您在Web服务器上使用的名称解析类型(IP地址,主机头).
服务器的主机名,DNS别名或IP地址,与自引用URL中显示的一样.
有人可以举一些例子说明它们有何不同?
我们的网络服务器中有2个IIS网络服务器..每个网站都有2个网站(当然,每个服务器相同).
每个网站都有大约5个左右的绑定.
那么......价值观是什么?有什么不同?
我正在使用以下标签
<VirtualHost *:80 *:443>
ServerName blog.mydomain.com
ServerAlias blog
Run Code Online (Sandbox Code Playgroud)
创建虚拟主机。我已将 ServerName 作为我的子域,即博客。但是,我正在尝试找出添加 www.blog 的方法。也可以在同一行中,而不必创建一个全新的虚拟主机。
有办法做到这一点吗?
我有ServerAlias指令的问题.配置如下所示:
ServerName d.geosurf.ru
ServerAlias www.d.geosurf.ru divo32pro.ru www.divo32pro.ru
Run Code Online (Sandbox Code Playgroud)
但!每次当我尝试去divo32pro.ru时,我得到d.geosurf.ru(servername).好像没有重定向,但有些不对劲......有什么想法?...
不知怎的,我的虚拟主机文件不能正常工作我不知道为什么 - 我敢打赌它只是我早上大脑中的邮件功能:p
现在我通过/ etc/apache2 /目录中可用站点的符号链接启用了两个站点,如:
0 Nov 21 12:24 000-default -> ../sites-available/default
0 Nov 21 14:52 001-site -> ../sites-available/site
Run Code Online (Sandbox Code Playgroud)
我的VHosts文件看起来像:
默认
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName (the IP Address from my Server)
ServerAlias (the 2nd IP Address from my Server)
DocumentRoot /var/www/default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/default>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory> …Run Code Online (Sandbox Code Playgroud) 我想在 ASP.NET 应用程序中记录我的服务器名称,我使用多服务器和负载平衡,所以我需要记录服务器名称。
但是这些获取服务器名称的方式有什么区别呢?
哪个是真实的或更好的记录?
任何的想法?
或任何其他方式?
System.Environment.MachineName
Server.MachineName
System.Net.Dns.GetHostName()
Run Code Online (Sandbox Code Playgroud)
还有另一种方法,但并不总是返回正确的服务器名称:
Request.ServerVariables["SERVER_NAME"]
System.Net.Dns.GetHostEntry(Request.ServerVariables("SERVER_NAME")).HostName
System.Net.Dns.GetHostEntry(Request.ServerVariables("LOCAL_ADDR")).HostName
Run Code Online (Sandbox Code Playgroud) PHP变量$ _SERVER ['SERVER_NAME']可以伪造或伪造吗?我计划将其用作表单发布的安全措施.我会检查以确保该变量是我的站点名称(www.example.com).我知道HTTP_REFERRER可以伪造,但我不确定这个.
谢谢!
任何想法为什么我的本地服务器没有在下拉列表中显示,你选择服务器名称?
谢谢!
所以我有多个域,其中有多个让我们加密 ssl 证书(每个域一个),它们都指向同一个应用程序(上游)。目前我正在使用下面的代码。然而,这是相当多的代码,特别是如果我必须为每个域复制它。所以我想知道是否有一种方法可以将其组合起来,以便我只拥有一次大部分代码,这将使其更容易维护。
的重定向https://www.any-domain-here以及最后一个主服务器块都是有问题的,因为两者都需要 ssl 证书,并且我需要包含所有不同域的证书。那么有没有一种方法可以在不重复这些代码块的情况下做到这一点呢?
############################
#
# Upstream
#
upstream upstream {
least_conn;
server app:8080;
}
upstream blog.upstream {
least_conn;
server app_nginx;
}
############################
#
# redirect all 80 to 443
# and allow Let's Encrypt
#
server {
server_name ~.;
listen 80;
listen [::]:80;
# config for .well-known
include /etc/nginx/includes/letsencrypt.conf;
location / {
return 301 https://$host$uri;
}
}
############################
#
# Redirect all www to non-www
#
server {
server_name "~^www\.(.*)$" ;
return 301 https://$1$request_uri …Run Code Online (Sandbox Code Playgroud) 正如在OpenSSL :: X509 ::证书显示错误域证书中所引用的那样,我需要使用TLSv1或更高版本以及 服务器名称指示扩展.
即使使用ssl_version和servername_cb设置SSLContext,我仍然得到错误的证书myproair.com.
begin
timeout(1) do
tcp_client = TCPSocket.new("#{instance["domain"]}", 443)
ssl_context = OpenSSL::SSL::SSLContext.new()
ssl_context.ssl_version = :TLSv1
ssl_context.servername_cb = "https://#{instance["domain"]}"
ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client, ssl_context)
ssl_client.connect
cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
ssl_client.sysclose
tcp_client.close
#http://ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/X509/Certificate.html
date = Date.parse((cert.not_after).to_s)
row.push("#{date.strftime('%F')} #{cert.signature_algorithm} #{cert.subject.to_a.select{|name, _, _| name == 'CN' }.first[1]}".downcase.ljust(57))
end
rescue SocketError
row.push("down".ljust(57))
rescue Errno::ECONNREFUSED
row.push("connection refused".ljust(57))
rescue Errno::ECONNRESET
row.push("connection reset".ljust(57))
rescue Timeout::Error
row.push("no 443 listener".ljust(57))
rescue OpenSSL::SSL::SSLError
row.push("bad certificate - ssl …Run Code Online (Sandbox Code Playgroud)