Nginx 一般使用

Z技术 2019年01月04日 581次浏览

1,Nginx 反向代理
1.1. 安装依赖

 yum install gcc
 yum install pcre-devel
 yum install zlib zlib-devel
 yum install openssl openssl-devel
 //或者一键安装上面四个依赖
 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

1.2.安装Nginx
        yum install Nginx  
1.3.修改配置 vim nginx.conf 不知道路径可以 find -name nginx.conf 查找

listen       80 default_server;
#listen       [::]:80 default_server;
server_name  domain.com; #绑定域名
#root         /usr/share/nginx/html;

# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;

location / {
       root html;
       index index.html;
       proxy_pass http://www.baidu.net; #需要代理的网址或IP 
}

*注:这种只能代理http 的站点

1.4.Nginx常用命令

    //测试配置文件
    安装路径下的/nginx/sbin/nginx -t
    复制代码
    //启动命令
    安装路径下的/nginx/sbin/nginx
    //停止命令
    安装路径下的/nginx/sbin/nginx -s stop
    或者 : nginx -s quit
    //重启命令
    安装路径下的/nginx/sbin/nginx -s reload
    //查看进程命令
    ps -ef | grep nginx
    //平滑重启
    kill -HUP Nginx主进程号

1.5.配置防火墙

    //打开防火墙文件
    sudo vim /etc/sysconfig/iptables
    //新增行  开放80端口
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
    //保存退
    //重启防火墙
    sudo service iptables restart

1.6.Nginx虚拟域名配置及测试验证

    //编辑nginx.conf
    sudo vim /usr/local/nginx/conf/nginx.conf
    //增加行 
    include vhost/*.conf
    //保存退出
    //在/usr/local/nginx/conf目录新建vhost文件夹

2,Nginx 负载均衡

有两种方式,下面采用ip_hash 实现负载均衡,修改配置后重启nginx

修改配置文件nginx.conf
upstream myapp {
	ip_hash;
	server ip:8000;
	server ip:8001;
	server ip:8002;
}
server {
	listen 8000;
	location / {
		proxy_pass http://myapp;
	}
}

3,代理google

server {
	listen  80;
	server_name     i.xxx.com;
	resolver        8.8.8.8;
	location / {
		root html;
		index /;
		proxy_pass https://www.google.com;
		proxy_connect_timeout 120;
		proxy_read_timeout 600;
		proxy_send_timeout 600;
		send_timeout 600;
		proxy_redirect    off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}

}

4,配置https访问

server {
	listen 443 ssl;
	#填写绑定证书的域名
	server_name i.xxx.com;
	#证书文件名称 放在当前文件夹cert下
	ssl_certificate  cert/7578518_i.xxx.com.pem;
	#私钥文件名称
	ssl_certificate_key cert/7578518_i.xxx.com.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	location / {
			proxy_pass http://127.0.0.1:8080;
			index / ;
	}
}

5,配置强制转发到https

server {
	listen  80;
	server_name i.xxx.com;
	if ($host ~* "^i.xxx.com$") {
		rewrite ^/(.*)$ https://i.xxx.com/$1 permanent;
	}
	location / {
			proxy_pass http://127.0.0.1:8080;
			index / ;
	}
}

更多信息请关注公众号:
20220401152838