nginx各种代理配置

nginx.conf文件配置(/etc/nginx/nginx.conf)

user   root;
worker_processes  2;


events {
    worker_connections  1024;
}


http {
    #user root;
    include       mime.types;
    default_type  application/octet-stream;

    client_max_body_size    100m;
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log;

    sendfile        on;
    keepalive_timeout  30;

    gzip  on;

    upstream git {
        server  localhost:7000;
    }

     server {
        listen       8811;
        server_name  localhost;
	    index  index.php index.html index.htm;
	    location / {
	        root /home/xuwei/xiaomu_html;
		    index  index.html;
		    rewrite ^/bookxw /bookxw.html break;
		    rewrite ^/checked /checked.html break;
		    rewrite ^/checking /checking.html break;
		    rewrite ^/extract_concept /extract_concept.html break;
		    rewrite ^/faq_check /faq_check.html break;
		    rewrite ^/all_data /all_data.html break;
	    }

	    location /xiaomu_score {
	        alias /home/xuwei/xiaomu_html/xiaomu_score;
	        index  index.html;
	    }

	    location /media {
	        alias /home/xuwei/media;
	    }

	    location /vue_test {
          alias /home/xuwei/vue_test/dist;
          try_files $uri $uri/ /vue_test/index.html;
        }

        location /v {
          alias /home/xuwei/xiaomu_vue/dist;
          try_files $uri $uri/ /v/index.html;
        }

        location /gitlab {
            # 设置最大允许上传单个的文件大小
            client_max_body_size 1024m;
            proxy_redirect off;
            #以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 反向代理到 gitlab 内置的 nginx
            proxy_pass http://git/gitlab;
            index index.html index.htm;
    }

        include conf.d/*.conf;
     }
}

conf.d文件夹下的配置(/etc/nginx/conf.d)

location /api/ {

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,from,token,gid,version';

    if ($request_method = 'OPTIONS') {
       add_header 'Access-Control-Max-Age' 1728000;
       add_header 'Content-Type' 'text/plain charset=UTF-8';
       add_header 'Content-Length' 0;
       return 204;
    }

    proxy_pass http://ip:5000;
	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_set_header X-Forwarded-Proto $scheme;
    proxy_connect_timeout 5;
}

docker 启动nginx

#!/usr/bin/env bash

docker stop test_nginx
docker rm test_nginx

docker run -d -p 5012:80 -p 5210:5210 
--name=test_nginx 
-v ./html:/usr/share/nginx/html 
-v ./nginx.conf:/etc/nginx/nginx.conf  
-v ./conf.d:/etc/nginx/conf.d 
-v ./logs:/var/log/nginx 
nginx
原文地址:https://www.cnblogs.com/beihangxuwei/p/13825291.html