nginx(虚拟主机配置、ip、域名、端口号)
封面图
•
2025-09-21
•
NGINX
227
0
0
0
在 Nginx 中配置虚拟主机(Virtual Hosts)是实现多站点托管的关键。虚拟主机可以基于 **IP 地址**、**域名** 或 **端口号** 来区分不同的网站。 下面我将分别介绍如何根据 **IP 地址**、**域名** 和 **端口号** 配置 Nginx 虚拟主机,并给出示例配置。 --- ## 一、Nginx 虚拟主机的类型 ### 1. 基于 IP 的虚拟主机 每个网站使用一个独立的 IP 地址。 ### 2. 基于域名的虚拟主机(最常用) 每个网站使用一个域名,共享同一个 IP 地址。 ### 3. 基于端口的虚拟主机 每个网站使用不同的端口(如 8080、8081 等)。 --- ## 二、配置示例 ### 1. 基于 IP 的虚拟主机 #### 示例:两个 IP 地址 `192.168.1.100` 和 `192.168.1.101` 创建两个配置文件: #### `/etc/nginx/sites-available/site1.conf` ```nginx server { listen 80; server_name 192.168.1.100; location / { root /var/www/site1; index index.html; try_files $uri $uri/ =404; } } ``` #### `/etc/nginx/sites-available/site2.conf` ```nginx server { listen 80; server_name 192.168.1.101; location / { root /var/www/site2; index index.html; try_files $uri $uri/ =404; } } ``` 然后在 `/etc/nginx/sites-enabled/` 中创建软链接: ```bash ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/ ``` 最后测试并重启 Nginx: ```bash nginx -t systemctl restart nginx ``` --- ### 2. 基于域名的虚拟主机(推荐) 假设你有两个域名: - `example.com` - `test.example.com` #### 创建配置文件: #### `/etc/nginx/sites-available/example.com.conf` ```nginx server { listen 80; server_name example.com www.example.com; location / { root /var/www/example.com; index index.html; try_files $uri $uri/ =404; } } ``` #### `/etc/nginx/sites-available/test.example.com.conf` ```nginx server { listen 80; server_name test.example.com; location / { root /var/www/test.example.com; index index.html; try_files $uri $uri/ =404; } } ``` 同样创建软链接并重启 Nginx: ```bash ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/test.example.com.conf /etc/nginx/sites-enabled/ systemctl restart nginx ``` > 注意:你需要在 DNS 设置中将域名指向你的服务器 IP。 --- ### 3. 基于端口的虚拟主机 如果你希望通过不同端口访问不同的网站,比如: - `http://your-ip:8080` - `http://your-ip:8081` #### 配置示例: #### `/etc/nginx/sites-available/port8080.conf` ```nginx server { listen 8080; server_name your-ip; location / { root /var/www/port8080; index index.html; try_files $uri $uri/ =404; } } ``` #### `/etc/nginx/sites-available/port8081.conf` ```nginx server { listen 8081; server_name your-ip; location / { root /var/www/port8081; index index.html; try_files $uri $uri/ =404; } } ``` 同样创建软链接并重启 Nginx。 --- ## 三、通用配置说明 | 参数 | 说明 | |------|------| | `listen` | 监听的 IP 和端口(如 `80`、`192.168.1.100:80`、`*:8080`) | | `server_name` | 虚拟主机的标识(可以是域名、IP 或 `_` 表示默认) | | `root` | 网站根目录路径 | | `index` | 默认首页文件 | | `try_files` | 处理请求,找不到时返回 404 | --- ## 四、常见问题 ### 1. 如何设置默认虚拟主机? 如果多个 `server` 块没有指定 `server_name`,那么第一个 `server` 会被当作默认。 也可以使用 `server_name _;` 来明确指定默认。 ### 2. 如何启用 HTTPS? 可以使用 `listen 443 ssl;` 并配置 SSL 证书。 ### 3. 如何检查配置是否正确? ```bash nginx -t ``` --- ## 五、总结 | 类型 | 配置方式 | 示例 | |------|----------|------| | IP | `listen 80; server_name IP` | `server_name 192.168.1.100;` | | 域名 | `listen 80; server_name domain.com` | `server_name example.com;` | | 端口 | `listen 8080; server_name IP` | `listen 8080;` | --- 如果你有具体的 IP、域名或端口需求,我可以帮你生成对应的配置文件。需要吗?
上一篇:
nginx伪静态规则
下一篇:
centos 7 源码包安装、卸载nginx
标题录入,一次不能超过6条
返回顶部
留言
留言
评论