Nginx配置的那些七七八八事
程序员文章站
2022-03-02 22:31:02
...
最近做小程序,除了前后端归自己弄,上线配置HTTPS和Nginx都是我这了~好吧 好吧,看过之前也看过一些Nginx,就着这个机会,汇总一下Nginx的配置吧(centerOS 7 系统)
安装
- 默认centerOS没有Nginx的源,需要自行设置
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 安装Nginx
sudo yum install -y nginx
- 启动Nginx并设置开机自动运行
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
查看文件
- 安装的配置文件在哪里?
- 安装完成后,安装信息里会打印安装路径。需要自行关注,我的安装在了服务器的
/etc/nginx
- 安装完成后,安装信息里会打印安装路径。需要自行关注,我的安装在了服务器的
- Nginx日志安装在哪里
- 在
/etc/nginx
下有一个nginx.conf 文件,是Nginx自带的default配置文件,;里面包含了日志的输出信息和位置,我们cat 一下后找到错误日志在:error_log /var/log/nginx/error.log;
;进程日志在access_log /var/log/nginx/access.log
等等
- 在
配置自己的拦截
- 在
/etc/nginx
下有一个nginx.conf 文件中,有一句这样的话include /etc/nginx/conf.d/*.conf;
会把 conf.d 文件夹下的.conf 文件全都加载过来作为Nginx配置文件 - 于是在conf.d 建立自己的XXX.conf 文件
静态页面的请求拦截端口监听
server {
# 监听端口号
listen 8001;
server_name localhost;
#开启gzip压缩
gzip on;
#设定请求缓冲
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
# 静态页面转发
location / {
root /home/mas/zx/bgdt-mp/dist/;
index index.html index.htm;
if (!-e $request_filename){
rewrite ^(.*)$ /$1.html last;
break;
}
}
# 接口请求为api前传的,代理转发到一下服务端口
location /api {
proxy_pass http://114.55.72.*;
}
# 接口请求为api前传的,代理转发到一下服务端口
location /category {
proxy_pass http://114.55.72.*;
}
}
HTTPS的服务转发
- 代理页面
server {
listen 8008 ssl;
server_name localhost;
ssl on; # 如果不需要把所有监听的端口都放到ssl请求,就在对应的端口上加入ssl 见上面,再把ssl on 注释掉
root html;
index index.html index.htm;
# 以下两个配置是配置HTTPS的根证书存放的位置路径,需要对应的域名申请,放到某个路径***意文件夹权限
ssl_certificate cert/214411038830109.pem;
ssl_certificate_key cert/214411038830109.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;
# 代理页面HTTPS
location / {
root html;
index index.html index.htm;
}
}
- 代理转发服务:因为我本地的服务是XXX端口,或者另外一个服务是YYY端口,需要这个域名的这个端口转发到XXX端口或者YYY端口是它变成HTTPS请求,可以这样配置
upstream app_weapp {
server 192.168.2.*:5758;
}
server {
listen 5757 ssl;
server_name localhost;
ssl_certificate /home/X/www/nginx/2450993_X.com.pem;
ssl_certificate_key /home/X/www/nginx/2450993_X.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 / {
// 代理到配置的app_weapp 服务
proxy_pass http://app_weapp;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
几个nginx相关常用的命令
- 启动:
sudo systemctl start nginx.service
- 开机自启动:
sudo systemctl enable nginx.service
- 重新启动:
sudo systemctl restart nginx.service
- 验证nginx配置文件是否正确
sudo nginx -t
- 查看某个端口是否能正常通信
telnet 10.0.0.128 8000
- 查找nginx的进程
ps -ef| grep nginx
- 杀掉指定端口号
sudo fuser -k -n tcp 5758
上一篇: scrapy-redis 完全重写start_requests函数
下一篇: Mysql运行抛异常:Causedby:net.sf.jsqlparser.parser.ParseException如何解决?
推荐阅读