Sof*_*mur 2 nginx godaddy wordpress
我在DigitalOcean买了一台专用服务器,配置好了nginx,mysql和php,IP地址是a.b.c.d. 我从GoDaddy:siteone.com和sitetwo.com. 我创建了一个子域sub.siteone.com,它将是一个WordPress站点。我发sub.siteone.com着a.b.c.d在GoDaddy。
通过关注这篇文章和这篇文章,我将 WordPress 文件放在/var/www/sub.siteone.com/html/. /etc/nginx/sites-available/sub.siteone.com包含以下内容:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/sub.siteone.com/html;
index index.php index.html index.htm;
server_name sub.siteone.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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Run Code Online (Sandbox Code Playgroud)
结果,当我sub.siteone.com在浏览器中输入时,它会重定向到a.b.c.dWordPress 网站并显示得很好。
问题是我希望我的服务器 ( a.b.c.d) 包含多个站点(即域)。所以我想象的一种机制是a.b.c.d/one/包含第一个域,并a.b.c.d/two/包含第二个域。其结果,
sub.siteone.com在浏览器中输入时,网址保持不变,而内容来自a.b.c.d/one/;sub.siteone.com/photos/在浏览器中输入时,url 保持不变,而内容来自a.b.c.d/one/photos;sitetwo.com在浏览器中输入时,网址保持不变,而内容来自a.b.c.d/two/;sitetwo.com/downloads/在浏览器中输入时,网址保持不变,而内容来自a.b.c.d/two/downloads谁能告诉我这个机制是否有意义?我如何修改 nginx 和 GoDaddy 的设置来实现这一点?
小智 6
您想要的称为虚拟主机。它的效果比你描述的要好得多!
只需添加server具有不同server_name和root目录的多个块。server每个域名一个块。请注意,只有其中一个可以标记为,default_server但除此之外,所有块看起来都相同。
最好的方法是为每个站点创建一个文件,然后将每个文件符号链接到/etc/nginx/sites-enabled/. 完成后,重新启动nginxservice nginx restart
小智 5
您可以使用 Nginx 中的服务器块轻松实现这一点,以创建多个“虚拟主机”,每个都具有不同的 HTTP 配置。这通过 Nginx 以不同的方式处理您的请求,具体取决于您用于访问服务器的 URL。
简而言之,要访问 siteone.com,您需要创建server一个server_name值为siteone.com. 每个服务器块可以在它自己的文件中,也可以在同一个文件中,这并不重要。
siteone.com:
server {
listen 80;
server_name sub.siteone.com;
root /var/www/sub.siteone.com/html;
# ADD ADDITIONAL SITEONE CONFIGURATION HERE
}
Run Code Online (Sandbox Code Playgroud)
sub.siteone.com:
server {
listen 80;
server_name sub.siteone.com;
root /var/www/sub.siteone.com/html;
# ADD ADDITIONAL SUB.SITEONE CONFIGURATION HERE
}
Run Code Online (Sandbox Code Playgroud)
sitetwo.com
server {
listen 80;
server_name sitetwo.com;
root /var/www/sitetwo.com/html;
# ADD ADDITIONAL SITETWO CONFIGURATION HERE
}
Run Code Online (Sandbox Code Playgroud)
这应该提供您需要的行为。还值得注意的是,您可以做的不仅仅是为每个服务器使用不同的根目录,为每个虚拟主机设置不同的日志文件、转发请求和更多功能也很有用。
这是一个为 sitetwo.com 提供特定日志文件的粗略示例
server {
listen 80;
server_name sitetwo.com;
root /var/www/sitetwo.com/html;
error_log /var/www/sitetwo.com/logs/error.log;
access_log /var/www/sitetwo.com/logs/access.log;
# ADD ADDITIONAL SITETWO CONFIGURATION HERE
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |