有时我们会使用一些java或node应用,但又不想让他们直接监听80端口,这时就需要用到端口转发
本文中,我们介绍Nginx如何做端口转发,还有各种转发规则
将域名转发到本地端口
首先介绍最常用的,将域名转发到本地另一个端口上
- server{
- listen 80;
- server_name tomcat.cncml.com;
- index index.php index.html index.htm;
- location / {
- proxy_pass http://127.0.0.1:8080; # 转发规则
- proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
将域名转发到另一个域名
- server{
- listen 80;
- server_name baidu.cncml.com;
- index index.php index.html index.htm;
- location / {
- proxy_pass http://www.baidu.com;
- proxy_set_header Host $proxy_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
[size=0.6]这样访问 http://baidu.cncml.com 时就会转发到 http://www.baidu.com
本地一个端口转发到另一个端口或另一个域名
- server{
- listen 80;
- server_name 127.0.0.1; # 公网ip
- index index.php index.html index.htm;
- location / {
- proxy_pass http://127.0.0.1:8080; # 或 http://www.baidu.com
- proxy_set_header Host $proxy_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
加 / 与不加 /
在配置proxy_pass代理转发时,如果后面的url加/,表示绝对根路径;如果没有/,表示相对路径
例如
加 /
- server_name cncml.com
- location /data/ {
- proxy_pass http://127.0.0.1/;
- }
不加 /
- server_name cncml.com
- location /data/ {
- proxy_pass http://127.0.0.1;
- }
本帖隐藏的内容
添加nginx网站 ”网站修改“ -》 “配置文件” 内添加下面代码- upstream urlcncml {
- #ip_hash;
- #server 106.13.127.196:6006 weight=1;
- server 106.13.127.196:6006;
- server www.7llt.com;
- }
- server
- {
- listen 80;
- server_name ns.com www.ns.com;
- index index.php index.html index.htm default.php default.htm default.html;
- root /www/wwwroot/nswww;
- #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
- #error_page 404/404.html;
- #SSL-END
- #ERROR-PAGE-START 错误页配置,可以注释、删除或修改
- #error_page 404 /404.html;
- #error_page 502 /502.html;
- #ERROR-PAGE-END
- #PHP-INFO-START PHP引用配置,可以注释或修改
- include enable-php-73.conf;
- #PHP-INFO-END
- #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
- include /www/server/panel/vhost/rewrite/ns.com.conf;
- #REWRITE-END
- #重定向页面地址
- location /cncml.html{
- if (!-e $request_filename){
- proxy_pass http://www.cncml.com;
- }
- }
- location /index.asp{
- proxy_pass http://www.llwe.cn;
- }
- location /41a1b70e{
- #防止502以及Timeout的发生
- proxy_connect_timeout 75;
- proxy_read_timeout 300;
- proxy_send_timeout 300;
- proxy_buffer_size 64k;
- proxy_buffers 4 64k;
- proxy_busy_buffers_size 128k;
- proxy_temp_file_write_size 128k;
- proxy_pass http://urlcncml;
- }
- #禁止访问的文件或目录
- location ~ ^/(\\.user.ini|\\.htaccess|\\.git|\\.svn|\\.project|LICENSE|README.md)
- {
- return 404;
- }
- #一键申请SSL证书验证目录相关设置
- location ~ \\.well-known{
- allow all;
- }
- location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
- {
- expires 30d;
- error_log off;
- access_log /dev/null;
- }
- location ~ .*\\.(js|css)?$
- {
- expires 12h;
- error_log off;
- access_log /dev/null;
- }
- access_log /www/wwwlogs/ns.com.log;
- error_log /www/wwwlogs/ns.com.error.log;
- }