linux nginx

7 篇文章 0 订阅
6 篇文章 0 订阅

在这里插入图片描述

----------------------------2020-09-11 重新总结一次
在这里插入图片描述

1)下载资源,准备了百度网盘:
连接: https://pan.baidu.com/s/1oqgOxgJbBJC9hoUsp4_fgg 密码: ntd6
nginx-1.14.2.tar.gz
nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz
2)解压
tar -xf nginx-1.14.2.tar.gz
tar -xf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz
– 改个名
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky-module
3)创建localhost-nginx文件夹–>将来所有配置在此
mkdir localhost-nginx
4)配置参数,添加ssl模块(注意下面是- -两横,和目录路径)
./configure --with-http_ssl_module
– add-module=/usr/local/nginx/nginx-sticky-module
– prefix=/usr/local/nginx/localhost-nginx
5)编译安装
make install
6)去到localhost-nginx/sbin
cd localhost-nginx/sbin
7)启动nginx
nginx
8)本地测试访问–>有结果返回说明启动正常
curl 127.0.0.1
9)完结
------------------------>以下常用命令
1)启动nginx ->进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可
2)验证nginx配置文件是否正确
进入nginx安装目录sbin下,输入命令./nginx -t
看到如下显示nginx.conf syntax is ok
nginx.conf test is successful
说明配置文件正确
3)重新编译和启动nginx ->注意目录路径 --> 我一般用这个简单快捷
/usr/local/nginx/localhost-nginx/sbin/nginx -c /usr/local/nginx/localhost-nginx/conf/nginx.conf -s reload
4)监听nginx
ps -ef | grep nginx
5)杀死所有nginx进程
killall -9 nginx

我的配置文件:nginx.conf

events {
worker_connections  1024;
}


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


sendfile        on;

fastcgi_intercept_errors on;

client_max_body_size	50m;	


server {
	listen 80 default;
	server_name _;
	return 403;
}

server {
    listen       80;
    server_name  ‘你的域名’;
    # 访问http直接跳转https
	rewrite ^(.*)$  https://$host$1 permanent;  
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

	location /  {
		# 传递请求头
		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_pass http://127.0.0.1:8035;
    }
	
	# 代理WebScoket
	location /socket.io/ { 
		# WebScoket 支持
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $host;
		proxy_http_version 1.1;
		proxy_pass http://127.0.0.1:8036; 
	}
    
}	


server {
    listen       443 ssl;
    server_name  ‘你的域名’;

	# ssl证书
    #ssl_certificate      /usr/local/nginx/localhost-nginx/ssl/***.pem;
    #ssl_certificate_key  /usr/local/nginx/localhost-nginx/ssl/***.key;

	# 分配10MB的共享内存缓存,不同工作进程共享TLS会话信息
    ssl_session_cache    shared:SSL:10m;
	# 设置会话缓存过期时间24h
    ssl_session_timeout  1440m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
	# 启用ssl_prefer_server_ciphers,用来告诉Nginx在TLS握手时启用服务器算法优先,由服务器选择适配算法而不是客户端
    ssl_prefer_server_ciphers  on;
	
	# TLS协议的合理配置
	# 指定TLS协议的版本,不安全的SSL2和SSL3要废弃掉
	# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	
	location /  {
		# 传递请求头
		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_pass http://127.0.0.1:8035; 
    }
	
	# 代理WebScoket
	location /socket.io/ { 
		# WebScoket 支持
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $host;
		proxy_http_version 1.1;
		proxy_pass http://127.0.0.1:8036; 
	}
	
	
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route (a)客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。 (b)后端服务器处理完请求,将响应数据返回给nginx。 (c)此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值 (d)客户端接收请求,并保存带route的cookie。 (e)当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。 其他需要注意的 (a)同一客户端的请求,有可能落在不同的后端服务器上。如果客户端启动时同时发起多个请求。由于这些请求都没带cookie,所以服务器会随机选择后端服务器,返回不同的cookie。当这些请求中的最后一个请求返回时,客户端的cookie才会稳定下来,值以最后返回的cookie为准。 (b)cookie不一定生效。由于cookie最初由服务器端下发,如果客户端禁用cookie,则cookie不会生效。 (c)客户端可能不带cookie。Android客户端发送请求时,一般不会带上所有的cookie,需要明确指定哪些cookie会带上。如果希望用sticky做负载均衡,请对Android开发说加上cookie。 (d)cookie名称不要和业务使用的cookie重名。Sticky默认的cookie名称是route,可以改成任何值。 (e)客户端发的第一个请求是不带cookie的。服务器下发的cookie,在客户端下一次请求时才能生效。 (f)Nginx sticky模块不能与ip_hash同时使用 sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly]; [name=route] 设置用来记录会话的cookie名称 [domain=.foo.bar] 设置cookie作用的域名 [path=/] 设置cookie作用的URL路径,默认根目录 [expires=1h] 设置cookie的生存期,默认不设置,浏览器关闭即失效,需要是大于1秒的值 [hash=index|md5|sha1] 设置cookie中服务器的标识是用明文还是使用md5值,默认使用md5 [no_fallback] 设置该项,当sticky的后端机器挂了以后,nginx返回502 (Bad Gateway or Proxy Error) ,而不转发到其他服务器,不建议设置 [secure] 设置启用安全的cookie,需要HTTPS支持 [httponly] 允许cookie不通过JS泄漏,没用过

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值