Nginx多域名配置

Nginx多域名配置

一、环境准备

1.Tengine,也称Taobao nginx,淘宝在Nginx基础上,针对大型网站访问,添加了一些高级功能和特性。 
2.Resin服务器或者Tomcat服务器,用来做Web服务器

二、域名解析

假设虚拟主机外网IP是123.123.123.123,添加解析到该域名:

1.添加域名解析,@和www,分别对应tngtech.com和www.tngtech.com映射;

2.添加手机站域名解析,m.tngtech.com

3.添加图片域名解析,image.tngtech.com

三、Nginx配置多域名
1.创建Nginx运行用户

groupadd www 
useradd -s /sbin/nologin -g www www

2.配置Nginx

2.1 配置运行用户和工作进程数

user  www;  #Nginx运行用户
worker_processes  8;    #工作进程数量,一般和CPU核数相等
   
   
  • 1
  • 2

2.2 配置Nginx连接数

events {
    worker_connections  2048;
    use epoll;
}
   
   
  • 1
  • 2
  • 3
  • 4

worker_connections 设置可由一个worker进程同时打开的最大连接数。 
use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll,高效处理事件驱动。

2.3 配置http长连接超时时间

keepalive_timeout  30;
   
   
  • 1

2.4 开启Gzip压缩

gzip  on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/css application/json text/javascript text/plain;
   
   
  • 1
  • 2
  • 3
  • 4
3. 配置多域名解析

3.1 配置www.tngtech.com域名解析

server {
       listen      80;
       server_name www.tngtech.com;

       location / {
            proxy_pass http://localhost:8083;
            proxy_set_header   Host    $host;
            proxy_set_header   X-Real-IP   $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       }
    }
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

配置www.tngtech.com域名解析到80端口,proxy_pass配置代理转发到本机8083端口的Web服务器上(Tomcat或者Resin),proxy_set_header设置请求header参数,包括host,ip头等。

3.2 配置手机站m.tngtech.com域名解析

server {
       listen      80;
       server_name m.tngtech.com;

       location / {
            proxy_pass http://localhost:8082;
            proxy_set_header   Host    $host;
            proxy_set_header   X-Real-IP   $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       } 
    }
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

跟配置www域名类似,转发到本机8082端口的Web服务器上。

3.3 配置图片服务器

server {
        listen       80;
        server_name  image.tngtech.com;

        charset utf-8;

        location ~* \.(gif|jpg|png)$ {
            root     /webser/www/images;
            expires  30d;
        }
    }    
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

过滤图片后缀,gif|jpg|png等,直接映射到/webser/www/images目录,设置缓存30d(天)过期。

至此,通过上面的Nginx配置,可以实现多个域名的解析。


Nginx是一款高性能的Web服务器和反向代理服务器,它支持多个域名配置。多域名配置可以通过为每个域名分配不同的虚拟主机来实现。 虚拟主机指的是将一台物理服务器分成多个逻辑服务器,每个虚拟主机都拥有自己的独立的域名和IP地址。在Nginx中,我们可以使用server指令来配置虚拟主机。 要配置域名,首先需要在Nginx配置文件中创建多个server块。这些块中的每一个都应该包含一个listen指令、server_name指令以及location指令。listen指令用于指定Nginx监听的端口和IP地址,server_name指令用于指定Nginx监听的域名,location指令用于指定Nginx处理请求的位置。 例如,以下是一个配置多个域名Nginx文件: ``` server { listen 80; server_name www.example1.com; location / { root /var/www/example1.com; index index.html; } } server { listen 80; server_name www.example2.com; location / { root /var/www/example2.com; index index.html; } } ``` 在上面的例子中,我们创建了两个虚拟主机,它们的域名分别为www.example1.com和www.example2.com。每个虚拟主机都有一个location指令,指定了它的根目录和默认的索引文件。 如果你需要使用SSL协议来保护通信,可以在每个server块中添加相应的SSL证书路径。例如: ``` server { listen 443 ssl; server_name www.example1.com; ssl_certificate /path/to/ssl/cert; ssl_certificate_key /path/to/ssl/private/key; location / { root /var/www/example1.com; index index.html; } } ``` 最后,一定要重启Nginx服务以确保配置文件生效。使用以下命令重启: ``` sudo systemctl restart nginx ``` 通过以上步骤,您就可以轻松地在Nginx配置多个域名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值