在CentOS/Windows下配置Nginx(以及踩坑)

在CentOS/Windows下配置Nginx(以及踩坑)

1. 序言

因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来。


2. CentOS

2.1 第一步下载nginx包

我选择将包放在/usr/local下

cd /usr/local

wget (nginx下载目录网址)

这里的下载目录可以根据需要选择版本从而决定
请点击nginx下载查看目录


2.2 安装nginx所需环境

yum?install?gcc-c++

yum?install?pcre

yum?install?pcre-devel

yum?install?zlib?

yum?install?zlib-devel

yum?install?openssl

yum?install?openssl-devel

可以在安装之前执行update,当然,这看你的网速和处理速度咯,有些大哥一个update就是一个小时。

yum update


2.3 解压 安装

执行解压操作

tar -zxvf nginx-xxx(你所选择的版本号).tar.gz

进入刚刚解压完成的文件夹

cd /usr/local/nginx-xxx/

接下来configure & make & make install

./configure

make

make install

如果到这一步没有错误,那你已经完成了一半了。


2.4 配置服务

cd /lib/systemd/system/

vim nginx.service

这样应该会新建一个nginx的服务配置文件

press i 写入以下配置 写完 :wq

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意点:

  • PIDFile的路径是你开启服务后会产生的那个nginx.pid文件,默认处于你nginx文件夹的logs目录下,同时在那个目录下还有error.log,这个文件很有用,有任何的错误,请仔细查看它,它一定会有所帮助。
  • ExecStartPre这个的作用是在服务启动前测试配置是否正确,看你的口味添加它吧。
  • ExecStart的路径是你nginx安装文件夹下/conf目录,作用是加载nginx.conf

2.5 设置开机启动等

systemctl enable nginx.service

systemctl start nginx.service

在这期间有遇到任何问题,就,就重启服务器吧。

你可以通过 # systemctl status nginx.service 这条命令来查看nginx服务状态。当Loaded: loaded,Active: active(running)时,就算完成了。悄悄说一句,修改完配置文件后都需要重新加载,最省事的办法就是重启服务器。当然,如果您的业务不允许频繁重启那么另当别论。像我这种自己搭着玩玩的就重启吧。


2.6 配置nginx

nginx默认监听80端口,所以做到这一步,输入你服务器的ip就应该可以出现欢迎界面。接下来我们要把自己的包放上去。

npm run build,把白天在公司写的东西打包,dist上传到服务器。

vim修改nginx安装目录下,conf/nginx.conf文件

可以将server {} 下的listen修改成其他端口号,可以将location / {root xxx;}修改成你的包想放在的地方,以下是我的配置。

listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root dist;
            index index.html index.htm index.nginx-debian.html;
            try_files $uri $uri/ /index.html;
        }

这样子,只需要把包扔进nginx/dist文件夹下,nginx就可以读取了。当然这是懒人做法,最好是把地址改成其他的,但要注意权限问题,否则会导致各种500错误。

3. Windows下的nginx配置

3.1 与在linux下的不同点

其实在windows下要简单许多,因为更为直观,但是有一些小坑会让人痛不欲生。

首先还是去官网下载你喜欢的版本,注意是nginx/Windows。

这里直接解压到你喜欢的目录即可。

可能到了这一步会很兴奋,但是要注意的是,不要双击nginx.exe

而是用powerShell/cmd 进入目录,使用指令 start nginx 运行。

在运行之前可以修改nginx.conf,建议更改端口号以及location,以下是我的Windows的配置


        listen       6789;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root d:/repo/dist;
            index index.html index.htm index.nginx-debian.html;
            try_files $uri $uri/ /index.html;
        }

        location /excel {
           proxy_method POST;
           proxy_pass   http://*****:****/****$request_uri;
        }

之后将打包后的dist替换d:/repo下的dist即可,本机访问只需localhost:6789,局域网内访问则只要ipconfig查一下ip带上端口号即可。

3.2 注意点

有时会出现各种各样的异常情况导致各种错误,请首先查看error.log,那里的报错非常详细。

  • 如果遇到 (123: The filename, directory name, or volume label syntax is incorrect)这种错误,就需要查看路径是否配置正确。在Windows常犯的错误比如路径名直接copy,但是名称带有一些关键字,比如r,在Windows下默认右斜,就会发生将\r识别成转义字符,导致路径莫名其妙错误。解决方案也很简单,要么所有右斜都用双右斜,要么就用左斜/。
  • 在同事电脑上还遇到多个进程的错误。就是使用以下指令

tasklist /fi "imagename eq nginx.exe"

会出现4个进程,使用 nginx -s quit 也只能关掉两个进程。

这时就只能杀掉进程,否则无法出现正确结果。

关于Windows里的配置我写的并不是十分详细,我看过比较好的文章,在这里,大家也可以参考它。

原文地址:https://www.cnblogs.com/lizziuno/p/11982020.html

时间: 12-04

在CentOS/Windows下配置Nginx(以及踩坑)的相关文章

windows下配置nginx+php环境

windows下配置nginx+php环境 刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”.当然这里不是要来唠嗑,以上是题外话. nginx相较于我们熟悉的apache.IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”.因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务.那么上正题了,ngin

windows 下配置 Nginx 常见问题(转)

windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我的系统是win7旗舰版的,到官网下载最新版本 nginx/Windows-1.7.9解压到英文目录下(我刚开始是放到中文目录下的,启动时会有问题,下面常见错误里会讲到). 一.  Nginx配置 找到 conf 目录里的 nginx.conf 文件,配置Nginx #user nobody; #指定

CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架

html { } .CodeMirror { height: auto } .CodeMirror-scroll { } .CodeMirror-lines { padding: 4px 0px } .CodeMirror pre { } .CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler { background-color: white } .CodeMirror-gutters { border-right-width: 1px;

windows 下配置 Nginx 常见问题

因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我的系统是win7旗舰版的,到官网下载最新版本 nginx/Windows-1.7.9解压到英文目录下(我刚开始是放到中文目录下的,启动时会有问题,下面常见错误里会讲到). 一.  Nginx配置 找到 conf 目录里的 nginx.conf 文件,配置Nginx #user nobody; #指定nginx进程数 worker_process

windows下配置Nginx+Mysql+Php7

环境:Windows10 mysql-5.6.24-win32解压缩版    nginx-1.8.0    php7 1.Mysql安装 下载压缩文件之后解压缩至相应目录(我的目录是G:\wnmp\mysql-5.6.24-win32) mysql根目录下修改my-default.ini文件为my.ini文件:修改将basedir和datadir两个路径前面的#号去掉改为 basedir = G:\wnmp\mysql-5.6.24-win32 datadir = G:\wnmp\mysql-5

Windows下配置nginx+php(wnmp)

第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本下载地址:http://windows.php.net/download/ Mysql5.5.28版本下载地址:http://www.mysql.com/downloads/mysql/ 2.安装mysql软件. 3.解压NGINX和PHP到你自己安装位置.这里我在C盘新建一个文件夹:wnmp(wind

Windows下配置nginx + php

第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX官网下载:http://nginx.org/en/download.html PHP版本下载地址:http://windows.php.net/download/ Mysql版本下载地址:http://www.mysql.com/downloads/mysql/ 2.安装mysql软件. 3.解压NGINX和PHP到你自己安装位置.这里我在C盘新建一个文件夹:wnmp(windows,ngnix,myspq,p

windows下配置nginx+php+mysql

Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定.低系统资源消耗而闻名.近几年Nginx在国内已经成炙热化状态,比如像腾讯.网易.51CTO.迅雷.当当网.51.人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以学习Nginx还是非常有必要的. 1.准备安装包 下载Nginx.MySQL和PHP的程序包,相关资源地址列表如下: Nginx http://nginx.o

Windows下配置Nginx+php7

第一部分:准备工作 第二部分:安装nginx 第三部分:安装php(这里主要讲nginx配置启动php,以cgi运行php)nginx配置文件是conf文件夹里的nginx.conf 在这里,我简单说说配置的原理,因为nginx是一个反向代理的web服务器,因此它其实必须依赖一个真正的web服务器才能执行动态的网页内容,因此这里php就是使用fastcgi来充当这个真正的web服务器,它运行在9000端口上,这也是为什么nginx.conf中有这样一句fastcgi_pass 127.0.0.1