下载Nginx
打开官方下载网站 选择稳定版下载

然后上传到linux服务器
安装
安装nginx之前需要先安装相关依赖,执行
1
| $ yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
|
安装完成之后进入到下载后存放的nginx文件夹 执行
1 2 3 4 5 6 7 8 9 10 11
| $ tar -xvf nginx-1.18.0.tar.gz $ cd nginx-1.18.0/ $ ./configure --prefix=/usr/local/nginx
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module $ make $ make install
$ cd /usr/local/nginx $ sudo chmod -R a+rw /usr/local/nginx $ ./sbin/nginx
|
打开浏览器,访问服务器地址,出现以下页面,说明成功

可能用到的命令
1 2
| $ ./sbin/nginx -s stop $ ./sbin/nginx -s reload
|
可能遇到的问题
启动后浏览器访问,出现无法访问此网站拒绝了我们的连接请求,可能是防火墙是开启状态,需要防火墙添加80端口出入规则
1 2 3 4
| $ systemctl status firewalld $ firewall-cmd --list-ports $ firewall-cmd --zone=public --add-port=80/tcp --permanent $ firewall-cmd --reload
|
nginx配置
使用vim 修改nginx.conf配置文件,修改完成后保存退出,重启nginx服务即可
1
| $ vim /usr/local/nginx/conf/nginx.conf
|
开机自启
首先配置下nginx.pid
1 2 3
| $ vim /usr/local/nginx/conf/nginx.conf
pid logs/nginx.pid;
|

在/etc/init.d下创建文件nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #! /bin/bash
PATH=/usr/local/nginx DESC="nginx daemon" NAME=nginx DAEMON=$PATH/sbin/$NAME CONFIGFILE=$PATH/conf/$NAME.conf PIDFILE=$PATH/logs/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running" } do_stop() { $DAEMON -s stop || echo -n "nginx not running" } do_reload() { $DAEMON -s reload || echo -n "nginx can't reload" } case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;; esac exit 0
|
然后设置文件的执行权限
1
| $ chmod a+x /etc/init.d/nginx
|
验证下
1 2 3
| $ #验证脚本 $ /etc/init.d/nginx start $ /etc/init.d/nginx stop
|
如果执行启动命令报错:
Warning: nginx.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
解决方案:
1
| $ systemctl daemon-reload
|
重启服务器即可:
1
| $ systemctl start nginx.service
|
验证脚本通过后,将刚刚创建的脚本添加到系统服务里
1 2 3 4
| $ chkconfig --add /etc/init.d/nginx $ service nginx start $ service nginx stop $ service nginx restart
|
最后一步设置服务自动重启
1 2 3 4
| $ chkconfig --add nginx $ chkconfig nginx on $ chkconfig --list nginx nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
重启下系统验证下
https证书配置
1 2
| $ cd /usr/local/nginx/conf $ mkdir cert
|
将两个ssl证书文件放到此目录
- 证书文件:文件类型为PEM。
- 密钥文件:文件类型为KEY。
然后修改nginx配置文件
1
| $ vim /usr/local/nginx/conf/nginx.conf
|
修改server配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| server { listen 443 ssl; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。 server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。 root html; index index.html index.htm; ssl_certificate cert/domain name.pem; #将domain name.pem替换成您证书的文件名称。 ssl_certificate_key cert/domain name.key; #将domain name.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 / { root html; #站点目录。 index index.html index.htm; } }
|
http重定向https配置
设置HTTP请求自动跳转HTTPS
1 2 3 4 5 6 7 8 9
| server { listen 80; server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 location / { index index.html index.htm; } }
|