Nginx作为一个高性能的HTTP服务器和反向代理服务器,具有配置灵活、资源占用低的优点。在安装完成Nginx后,可以通过配置文件轻松实现网站代理和服务转发。
本文将分为两个场景,详细介绍如何配置Nginx:
- 80端口配置多个不同域名,每个域名对应不同的网站资源。
- 配置代理服务,通过Nginx转发服务端端口。
前置条件
- 已经成功安装Nginx。
- 确认Nginx的配置文件路径,通常为
/etc/nginx/nginx.conf
或者/etc/nginx/conf.d/*.conf
。 - 有root权限编辑配置文件并重启Nginx服务。
场景一:80端口配置多个不同域名
在一个Nginx服务器中,通过虚拟主机(Server块)可以绑定不同的域名到对应的网站资源。
配置步骤:
- 打开Nginx配置文件目录: 通常Nginx的站点配置文件存放在
/etc/nginx/conf.d
中,使用以下命令打开一个新的配置文件:sudo nano /etc/nginx/conf.d/example.conf
- 配置虚拟主机: 以下是配置多个域名的示例:
server { listen 80; server_name example1.com www.example1.com; root /var/www/example1; index index.html; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name example2.com www.example2.com; root /var/www/example2; index index.html; location / { try_files $uri $uri/ =404; } }
配置说明:
listen 80;
指定监听端口为80。server_name
指定域名,多个域名用空格分隔。root
指定网站资源的根目录。location
定义具体请求的处理方式,try_files
指令用于处理静态文件。
- 创建网站资源目录: 根据配置文件中定义的根目录,创建对应的文件夹并放置网站文件:
sudo mkdir -p /var/www/example1 /var/www/example2 echo '<h1>Welcome to Example1</h1>' | sudo tee /var/www/example1/index.html echo '<h1>Welcome to Example2</h1>' | sudo tee /var/www/example2/index.html
- 测试配置文件: 使用以下命令测试Nginx配置文件是否正确:
sudo nginx -t
- 重启Nginx服务:
sudo systemctl reload nginx
- 解析域名: 确保
example1.com
和example2.com
解析到服务器IP地址,可以通过修改本地hosts
文件测试:127.0.0.1 example1.com www.example1.com 127.0.0.1 example2.com www.example2.com
场景二:配置代理服务(反向代理)
Nginx可以将外部请求转发到内部服务端口,常用于后端服务的代理。
配置步骤:
- 编辑配置文件: 打开一个新的配置文件或者编辑现有配置文件:
sudo nano /etc/nginx/conf.d/proxy.conf
- 配置反向代理: 以下是将请求转发到服务端口的示例:
server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
配置说明:
proxy_pass
定义转发地址,此处将请求转发到127.0.0.1:8080
。proxy_set_header
用于设置请求头信息,方便后端识别原始请求的主机名和客户端IP。
- 测试配置文件:
sudo nginx -t
- 重启Nginx服务:
sudo systemctl reload nginx
- 测试代理: 确保后端服务(例如运行在8080端口)已启动,可以通过以下方式测试:
curl http://api.example.com
总结
通过以上配置方法,您可以:
- 在Nginx上为多个域名绑定不同的网站资源。
- 使用Nginx将外部请求转发到后端服务。
Nginx的配置文件逻辑清晰、功能强大,可以满足各种网站和服务部署需求。如果需要更高级的功能,如负载均衡或HTTPS配置,可以在此基础上进一步扩展。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...