本文是一个支持https和websocket的nginx配置文件,方便需要时使用。
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
tcp_nopush on;
tcp_nodelay on;
open_file_cache max=1024000 inactive=30s;
open_file_cache_valid 20s;
open_file_cache_min_uses 1;
keepalive_timeout 65;
keepalive_requests 8192;
client_max_body_size 20M;
client_body_buffer_size 2M;
proxy_connect_timeout 30;
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_temp_path /tmp;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=10g;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/json image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
#keepalive_timeout 0;
#gzip on;
#http节点中可以添加多个server节点
server{
#监听443端口
listen 443 ssl;
#对应的域
server_name localhost;
#获取到的第一个文件的全路径
ssl_certificate /usr/local/nginx/ssl/domain_bundle.crt;
#获取到的第二个文件的全路径
ssl_certificate_key /usr/local/nginx/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
location / {
root /usr/local/nginx/app;
index index.html index.htm;
}
## /api/开头的接口支持websocket.并跳转到对应的服务
location /api/ {
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-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:82/program/;
}
}
##访问80时重定向到443端口。
server{
listen 80;
server_name localhost;
rewrite ^/(.*)$ https://localhost:443/$1 permanent;
}
}