在Linux系统中使用Nginx配置虚拟主机,可以实现在同一台服务器上托管多个独立的网站。
详细的配置示例:
1. 准备工作
确保已经安装了Nginx。如果尚未安装,使用系统包管理器进行安装,例如在基于Debian的系统上:
Bash1sudo apt update
2sudo apt install nginx
或者在基于RPM的系统(如CentOS/RHEL)上:
Bash1sudo yum install epel-release
2sudo yum install nginx
2. 创建网站文件夹
为每个虚拟主机创建各自的网站文件夹,存放各自的HTML、CSS、JavaScript等静态文件。例如:
Bash1sudo mkdir -p /var/www/example1.com/public_html
2sudo mkdir -p /var/www/example2.com/public_html
3. 编写虚拟主机配置文件
在Nginx的配置目录(通常是/etc/nginx/conf.d/或/etc/nginx/sites-available/)中,为每个虚拟主机创建一个配置文件。这里分别创建example1.com.conf和example2.com.conf:
example1.com.conf
Nginx1server {
2 listen 80;
3 server_name example1.com www.example1.com;
4
5 root /var/www/example1.com/public_html;
6 index index.html index.htm;
7
8 access_log /var/log/nginx/example1.com.access.log;
9 error_log /var/log/nginx/example1.com.error.log;
10
11 location / {
12 try_files $uri $uri/ =404;
13 }
14}
example2.com.conf
Nginx1server {
2 listen 80;
3 server_name example2.com www.example2.com;
4
5 root /var/www/example2.com/public_html;
6 index index.html index.htm;
7
8 access_log /var/log/nginx/example2.com.access.log;
9 error_log /var/log/nginx/example2.com.error.log;
10
11 location / {
12 try_files $uri $uri/ =404;
13 }
14}
每个配置文件中:
- listen 80 指定监听HTTP端口80。
- server_name 列出与该虚拟主机关联的域名。
- root 设置网站根目录。
- index 指定默认索引文件。
- access_log 和 error_log 分别指定访问日志和错误日志的路径。
- location / 配置默认请求处理规则,使用try_files指令尝试匹配文件或返回404错误。
4. 链接启用配置(可选)
如果配置文件存储在/etc/nginx/sites-available/目录,需要创建符号链接到/etc/nginx/sites-enabled/以启用配置:
Bash1sudo ln -s /etc/nginx/sites-available/example1.com.conf /etc/nginx/sites-enabled/
2sudo ln -s /etc/nginx/sites-available/example2.com.conf /etc/nginx/sites-enabled/
5. 测试配置并重启Nginx
检查Nginx配置文件是否有语法错误:
Bash1sudo nginx -t
如果输出显示“syntax is ok”且“test is successful”,则可安全地重启Nginx以应用更改:
Bash1sudo systemctl restart nginx
6. DNS设置
确保已为example1.com和example2.com配置正确的DNS记录,指向服务器的公网IP地址。等待DNS传播生效后,通过浏览器访问这两个域名,应能看到各自网站的内容。
本文暂时没有评论,来添加一个吧(●'◡'●)