前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 服务器端配置

Nginx 服务器端配置

作者头像
离殊
发布2022-04-01 15:57:16
1.9K0
发布2022-04-01 15:57:16
举报
文章被收录于专栏:DingLin 随笔

这是一篇关于 Nginx 服务器端配置的记录

#nginx 安装(centOS 7)并配置服务

#添加 yum 源

代码语言:javascript
复制
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

#安装

代码语言:javascript
复制
yum install nginx

#Mac 安装 Nginx

首先在命令行输入 nginx 如果没有任何输出的话,代表你已经安装了 nginx 了

否则进行安装,直接使用 brew 进行安装

代码语言:javascript
复制
brew install nginx

跑完之后可以在试一下是否安装成功

TIP

通过 brew 安装的 nginx 可以通过 brew info nginx 查看相关信息

或者通过 nginx -V 来查看相关信息

代码语言:javascript
复制
$ brew info nginx

nginx: stable 1.17.10 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
/usr/local/Cellar/nginx/1.17.10 (25 files, 2.1MB) *
  Poured from bottle on 2020-10-10 at 15:43:28
From: https://mirrors.ustc.edu.cn/homebrew-core.git/Formula/nginx.rb
==> Dependencies
Required: openssl@1.1 ✔, pcre ✔
==> Options
--HEAD
	Install HEAD version
==> Caveats
Docroot is: /usr/local/var/www

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /usr/local/etc/nginx/servers/.

To have launchd start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  nginx
==> Analytics
install: 32,211 (30 days), 102,881 (90 days), 409,451 (365 days)
install-on-request: 31,621 (30 days), 100,926 (90 days), 397,605 (365 days)
build-error: 0 (30 days)
代码语言:javascript
复制
$ nginx -V

nginx version: nginx/1.17.10
built by clang 11.0.3 (clang-1103.0.32.29)
built with OpenSSL 1.1.1f  31 Mar 2020 (running with OpenSSL 1.1.1g  21 Apr 2020)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/Cellar/nginx/1.17.10 --sbin-path=/usr/local/Cellar/nginx/1.17.10/bin/nginx --with-cc-opt='-I/usr/local/opt/pcre/include -I/usr/local/opt/openssl@1.1/include' --with-ld-opt='-L/usr/local/opt/pcre/lib -L/usr/local/opt/openssl@1.1/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --pid-path=/usr/local/var/run/nginx.pid --lock-path=/usr/local/var/run/nginx.lock --http-client-body-temp-path=/usr/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/usr/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/usr/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/usr/local/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/var/run/nginx/scgi_temp --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-compat --with-debug --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-ipv6 --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module

#Mac 下 Nginx 默认位置

代码语言:javascript
复制
/usr/local/etc/nginx/nginx.conf (配置文件路径)
/usr/local/var/www (静态文件路径)
/usr/local/Cellar/nginx/[version] (安装路径?)

TIP

可以直接访问 http://localhost:8080 来访问 Nginx 开启的服务

#打开防火墙端口并重启

代码语言:javascript
复制
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

#查看防火墙打开的所有服务

代码语言:javascript
复制
firewall-cmd --list-service

#查看当前打开的端口

代码语言:javascript
复制
firewall-cmd --zone=public --list-ports

#打开指定端口

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=80/tcp
# (永久生效再加上 --permanent)

TIP

–zone 作用域

–add-port=8080/tcp 添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

#解决 nginx 403 错误问题

第一种情况: 在你的 nginx 配置文件下的 root 字段的路径下没有找到 index.html

第二种情况: 没有用 root 用户运行,导致权限不足,也可以通过将文件夹权限提升再试

#nginx部署前端SPA应用实践

#nginx location 匹配规则

  • ~ 波浪线表示执行一个正则匹配,区分大小写
  • ~* 表示执行一个正则匹配,不区分大小写
  • ^~ 表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
  • = 进行普通字符精确匹配
  • @ 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

#browserHistory 模式的刷新问题

browserHistory 路由模式下,使用history api可以在前端进行页面跳转,但是刷新的话,就需要对链接进行一个修复(重定向) 可以使用 nginx 的 try_files

代码语言:javascript
复制
location / {
        root   /root/deploy/shenyang_military_general_app;
        index  index.html index.htm;
      	try_files $uri $uri/ /index.html;
}

#开启 gzip 压缩

代码语言:javascript
复制
gzip  on;
gzip_types    text/plain application/javascript application/x-javascript text/javascript text/xml text/css;

配置gzip_static

代码语言:javascript
复制
gzip_static on;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • #nginx 安装(centOS 7)并配置服务
    • #添加 yum 源
      • #安装
      • #Mac 安装 Nginx
      • #Mac 下 Nginx 默认位置
        • #打开防火墙端口并重启
          • #查看防火墙打开的所有服务
            • #查看当前打开的端口
              • #打开指定端口
              • #解决 nginx 403 错误问题
              • #nginx部署前端SPA应用实践
                • #nginx location 匹配规则
                  • #browserHistory 模式的刷新问题
                  • #开启 gzip 压缩
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档