docker-compose
version: "3"
services:
nginx:
image: nginx
restart: always
container_name: nginx
privileged: true
ports:
- 8014:8014
- 在这里是需要暴露的端口
volumes:
- /etc/localtime:/etc/localtime:ro
- ./log:/var/log/nginx
- /主配置文件宿主机路径/nginx.conf:/etc/nginx/nginx.conf
- ./HTTP端口监听文件夹conf.d:/etc/nginx/conf.d
- ./TCP端口监听文件夹stream.d:/etc/nginx/stream.d
- ./你得前端web项目地址web:/home/docker/nginx/web
network_mode: host
主配置文件nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
# HTTP监听代理
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
# TCP监听代理
stream {
log_format proxy '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
access_log /var/log/nginx/stream.log proxy;
open_log_file_cache off;
include /etc/nginx/stream.d/*.conf;
}
http端口-放在conf.d目录下的文件,可以放置多个
# operation
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 8015;
listen [::]:8015;
server_name 127.0.0.1:8015;
# html文件地址
location / {
root /路径/web/screen;
index zhihuizhaoming.html;
}
}
server {
listen 8014;
listen [::]:8014;
client_max_body_size 50m;
server_name 127.0.0.1:8014;
root /你的前端项目放的地方也就是nginx配置的web路劲/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
location /后端接口路径/ {
proxy_pass http://你得服务IP:端口;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# 这里配置单个代理跨域,跨域配置
add_header 'Access-Control-Allow-Origin' *;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' *;
add_header 'Access-Control-Allow-Headers' *;
}
}
TCP端口-放在stream.d目录中的文件,可多个
upstream protocol_backend {
# 可以配置不同的负载均衡算法
# least_conn; # 最少连接数
# ip_hash; # 根据客户端IP进行哈希,保证同一IP总是访问同一台后端
# weight是权重比,根据服务器情况自己设置
server 实际的TCP服务1的IP:端口 weight=3 max_fails=3 fail_timeout=30s;
server 实际的TCP服务2的IP:端口 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 10000;
listen [::]:10000;
proxy_pass protocol_backend;
tcp_nodelay on;
}