nginx的安装与配置
Nginx能帮我们实现哪些事情
- 反向代理
- 负载均衡
- 微服务网关入口
- 静态资源服务器
- 对我们网站防护,安全策略,熔断,防止ddos攻击、限流
正向代理与反向代理的区别
- 正向代理是隐藏用户行为
- 反向代理是隐藏真实服务器
Ngxin 安装
1.添加Nginx到YUM源
添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令:
1 | sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
如果报如下错误,并且会卡住无法使用
ctrl+c
终止程序,可使用如下方法1
warning: /var/tmp/rpm-tmp.1pXoTB: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
使用如下方法:
删除rpm数据文件后再重建rpm数据文件:
1
rm -f /var/lib/rpm/__db.00*
删除
.rpm.lock
1
rm -f .rpm.lock
重建rpm数据文件
1
rpm -vv --rebuilddb
然后继续后面的操作
2.安装Nginx
在你的CentOS 7 服务器中使用yum
命令从Nginx源服务器中获取来安装Nginx:
1 | sudo yum install -y nginx |
3.启动Nginx
刚安装的Nginx不会自行启动。运行Nginx:
1 | sudo systemctl start nginx.service |
如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面;
4.CentOS 7 开机启动Nginx
1 | sudo systemctl enable nginx.service |
5.防火墙配置
Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent |
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
6.重启防火墙
1 | firewall-cmd --reload |
注:详细信息可以参考以下资料:
Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
7.Linux查看公网IP
您可以运行以下命令来显示你的服务器的公共IP地址:
1 | ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130567.html 原文链接:https://javaforall.cn
来源于全栈程序员必看
Nginx 配置
1.Nginx配置信息
网站文件存放默认目录
1
/usr/share/nginx/html
网站默认站点配置
1
/etc/nginx/conf.d/default.conf
自定义Nginx站点配置文件存放目录
1
/etc/nginx/conf.d/
Nginx全局配置
1
/etc/nginx/nginx.conf
Nginx启动
1
nginx -c nginx.conf
在这里你可以改变设置用户运行Nginx守护程序进程一样,和工作进程的数量得到了Nginx正在运行,等等。
2.全局配置
如果不需要多个域名配置,可以直接再nginx.conf里将server配置好
1 | For more information on configuration, see: |
Nginx日志输出
Nginx域名配置及https的ssl证书配置
域名配置
购买域名
阿里云或者腾讯云这类的运营商都是可以购买域名的,便宜的一年十几块到三十几块都是有的
域名解析
购买完域名后需要配置域名的解析地址
以阿里云为例,右上角控制台->资源概览下面的域名
右侧域名列表,找到刚刚购买的域名点击解析
添加记录
主机记录以www为例
记录类型选择a,为a时记录值为你的服务器ipv4地址,主机记录为你的二级域名,你购买的
xxx.com
为你的一级域名,主机记录可以随便填,如为www
则访问域名时应为www.xxx.com
配置好后可以以
domain:port
的方式进行访问已在服务器上启动的项目,此时为http协议的地址使用 Nginx 反向代理项目
在
/etc/nginx
目录创建一个domain.d
文件夹,用来配置域名,若需要代理的服务不多,可直接在nginx.conf
内进行配置如果与我一样新创建了一个 Nginx 配置文件夹,则需要在
nginx.conf
内进行导入配置文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
### 此处为加入的一行配置
include /etc/nginx/domain.d/*.conf;
### 下面为代理的配置,可在 nginx.conf 里进行配置,也可以新建conf文件进行配置
server{
listen 80;
listen [::]:80;
## server_name为域名
server_name www.xxx.com;
location / {
proxy_pass http://www.xxx.com:8080;
}
}配置好了之后可以使用
http://www.xxx.com
进行访问,此时还不能使用https
进行访问,需要配置 ssl证书 之后才能使用 https协议Nginx 的 https 配置
同 http协议 代理相同配置,配置的内容有所变化,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.xxx.com;
ssl_certificate "/root/ssl/xxx.com/www/www.xxx.com.pem";
ssl_certificate_key "/root/ssl/xxx.com/www/www.xxx.com.key";
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://www.xxx.com:8080;
}
}
server {
listen 80;
server_name www.xxx.com;
rewrite ^(.*)$ https://www.xxx.com permanent;
}
server_name不能重复,否则会报错,重定向server块是指定需要重定向的代理server
配置好 https 的ssl证书后重启 Nginx,就可以正常使用https进行访问,监听80端口之后,使用http协议进行访问会重定向到 https 协议的地址下,若没配置成功,使用 https协议 进行放回会报不安全