nginx 配置域名转发

自己测试环境,配置下载目录和一个jenkins的地址:

域名跳转,反向代理

# cat ../nginx.conf
user www www;
worker_processes  1;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    worker_connections  65535;
    use epoll;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘"$upstream_addr" $status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$host"‘;
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  60;

    gzip on;
    client_max_body_size 50m;  #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户
    client_body_buffer_size 256k;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_send_timeout 300s;
    proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
    proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
    proxy_ignore_client_abort on; #不允许代理端主动关闭连接

upstream tomcat_test1 {
           server 192.168.37.108:8080;
    }

upstream tomcat_2 {
           server 192.168.37.109:8080;
    }

include       /usr/local/nginx/conf/vhosts/*.conf;
}

接下来是server 主机的配置:

# cat /usr/local/nginx/conf/vhosts/test.conf
server {
        listen       80;
        server_name  www.aliluo.top;

        location /images {
                root    /;
                rewrite ^/image/(.*)$ /image/$1 break;
                access_log /usr/local/nginx/logs/test.log main;
                }
        location /upload {
                autoindex on;
                autoindex_exact_size on;
                autoindex_localtime on;
                alias   /data/upload;
                access_log /usr/local/nginx/logs/upload.log main;
                }
        location /jenkins {
                #反向代理的地址
                proxy_pass http://tomcat_2/jenkins;
                #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
                proxy_set_header Host $host;
                proxy_set_header X-Real-Ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                access_log /usr/local/nginx/logs/tomcat_test1.log main;
                }

        }

启动nginx后,打来链接,就会出现jenkins界面,输入用户名,密码可以正常登陆:

登陆页面:

备注:

  1)使用nginx的rewrite 同样可以是实现这个功能,可能配置上会有小许不同;

  2)使用proxy_pass,如果跳转后输入用户名密码无法登陆,可能是由于以下参数没有配置,该参数具体含义可以参考nginx有关文章自行学习:

  proxy_set_header Host $host;

  proxy_set_header X-Real-Ip $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;

时间: 2024-11-10 20:58:07

nginx 配置域名转发的相关文章

Nginx配置域名转发实例

域名:cps.45wan.com   所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: server {listen 80; server_name cps.45wan.com; root /home/web/cps.45wan.com/htdocs/www; location / { root /home/web/cps.45wan.com/htdocs/www; } locatio

nginx做域名转发和uri转发

一. 域名转发 www.qq.com ------> www.baidu.com nginx部署在192.168.1.100,本地配置host 192.168.1.100 www.qq.com ,浏览器输入www.qq.com会跳转到www.baidu.com # vi  /etc/nginx/nginx.conf user nginx;worker_processes 1; events { use epoll; worker_connections 10240; } http { serve

nginx 多域名转发

nginx配置多域名转发其实蛮简单的,网上都是资料. 我纠结的是我配置成功的第二个域名,转发不添加项目名 就找不到我的项目. 一直在想是不是nginx配置出了问题,后来转念一想. 是因为我的项目在tomcat中没有放在ROOT目录下.

nginx配置域名跳转

nginx 配置主域名 xxx.com, 跳转子域名 www.xxx.com server {listen 80;server_name www.xxx.com; location / { root html/www/public_html; index index.php index.html index.htm; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { r

Linux JDK Tomcat Nginx MariaDB 安装,Nginx 多域名转发配置

安装JDK rpm包下载地址(jdk-7u17 ): http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u17-oth-JPR # yum install wget -y JDK下载地址: http://download.oracle.com/otn/java/jdk/7u17-b02/jdk-7u17-linux-x64.rpm?Auth

Nginx配置请求转发location及rewrite规则

一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ c

nginx配置salt-api转发

配置nginx对salt-api的https转发,以下是nginx配置文件 upstream saltapi.local { server 192.186.156.55:8090 weight=10 max_fails=2 fail_timeout=30s; } server { listen 443 default ssl; server_name 192.186.156.55; access_log /export/servers/nginx/logs/saltapi.local/salta

Nginx配置域名跳转实例

要求:浏览器地址栏输入qj.123.com之后,地址自动变成qj.abc.com 配置nginx跳转 server { listen 80; server_name qj.abc.com qj.123.com; set $domain qj.abc.com; index index.php index.html index.htm; root /home/web/$domain/htdocs/; if ( $host = 'qj.123.com' ){ rewrite ^/(.*)$ http:

Nginx配置proxy_pass转发的/路径问题

在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走. location ^~ /static_js/ { proxy_cache js_cache; proxy_set_header Host js.test.com; proxy_pass http://js.test.com/; } 如上面的配置,如