Nginx配置网页转发

0 需求

将云服务器的80端口转发到另一台服务器部署的网页

1. 方式一 直接跳转到另一个网站

这种方式就是打开当前云服务器的公网ip绑定的域名,如www.abc.com,会直接跳转到http://11.22.33.44:8081;

server {
	listen		80;
	server_name	localhost;
	return 301 http://11.22.33.44:8081;
}

2. 方式二 使用请求转发

这种方式就是打开当前云服务器的公网ip绑定的域名,如www.abc.com,页面同样是www.abc.com,后续所有的链接都是基于www.abc.com/xxxx/xxxx去访问,可以起到隐藏真实访问ip的目的,防止暴露
① Nginx配置
当前服务器ip:101.10.1.101,绑定域名www.abc.com
另一台服务器ip:123.11.1.123,网页部署地址:http://www.kjxg.com:8080/crm/

server {
	listen		80;
	server_name	www.abc.com;	# 当前服务器网页访问域名地址

	proxy_set_header Host $host:$server_port;
	proxy_set_header X-Real-Ip $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

	location / {
		proxy_set_header Host $host:$server_port;
		proxy_set_header X-Real-Ip $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_pass http://www.kjxg.com:8080/crm/; # 另一台部署网页的访问地址
	}

	# 配置静态资源文件的转发,不配置这个一些js、css、png等文件会提示404
	location ~ .*\.(js|css|png|woff|ttf)$ {
		proxy_pass http://123.11.1.123:8080; # 另一台部署网页的ip+port
	}
}

在这里插入图片描述

② 访问
a. 访问:http://101.10.1.101
b. 访问:www.abc.com # 这个貌似还要备案
c. 加载速度取决于当前的服务器

### 如何使用Nginx配置部署静态或动态网页 #### 部署静态网页 为了使 Nginx 能够提供静态网页服务,需要正确设置其配置文件以指向存储静态资源的位置。通常情况下,在安装完成后,Nginx 的默认根目录位于 `/usr/share/nginx/html` 或者其他位置取决于具体的操作系统和版本。 当希望托管个人项目时,则需修改 `nginx.conf` 文件中的 server 块来定义新的 root 参数以及 index 页面名称: ```nginx server { listen 80; server_name localhost; location / { root html; # 定义网站根目录 index index.html; # 设置首页文件名 } } ``` 完成上述更改之后保存退出编辑器,并重启 Nginx 来应用新设定[^4]。 对于更复杂的场景比如多域名支持或是不同子路径对应不同的物理地址等情况,可以通过创建多个 `location` 指令或者利用虚拟主机功能来进行处理。 #### 使用虚拟主机管理配置 Linux 系统上常见的做法是在 `/etc/nginx/sites-available/` 下建立独立的 `.conf` 文件用于描述特定站点的所有参数;随后在 `/etc/nginx/sites-enabled/` 中创建相应软连接使得该站点生效。这样做的好处是可以方便地启停各个站点而无需频繁改动主配置文件[^2]。 假设有一个名为 example.com 的网站想要上线,那么可以在 `/etc/nginx/sites-available/example.com` 创建如下内容: ```nginx server { listen 80; server_name www.example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { root /var/www/example.com/public_html/; try_files $uri $uri/ =404; } ... } ``` 接着执行命令 `ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/` 将此站点加入到活动列表里去。 最后记得再次测试并重新加载 Nginx 进程让一切变更立即起效: ```bash sudo nginx -t && sudo systemctl reload nginx ``` #### 动态网页的支持 如果计划搭建的是 PHP 应用程序或者其他类型的脚本驱动型 web app ,则除了基本的 HTML/CSS/JS 外还需要额外考虑如何集成相应的解释引擎。例如针对 PHP 可能涉及到 FastCGI 协议通信机制及其进程管理者 php-fpm 的配合工作。 下面是一个简单的例子展示了怎样调整之前的 configuration 让它能够解析 .php 结尾的请求并将它们传递给后台处理器: ```nginx location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } ``` 这段代码片段告诉 Nginx 对于任何匹配正则表达式的 URI (即以.php结尾),应该按照指定的方式转发给PHP-FPM监听着的那个 Unix socket 接口上去做进一步处理[^1]。 以上就是有关于如何使用 Nginx 来部署不同类型Web应用程序的一些指导说明。当然实际操作过程中可能还会遇到更多细节方面的问题等待解决,但遵循这些基本原则应当足以帮助建立起一个稳定可靠的网络服务平台。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值