chatgpt:ubuntu server安装nginx

  1. chatgpt:ubuntu server安装nginx
    1. ubuntu server安装nginx
    2. 通过源码编译
    3. sysgemd配置自动启动
    4. 设置root目录
    5. 配置域名代理
    6. 配置ssl证书
    7. 配置php解析
    8. 通过php-fpm.sock解析

chatgpt:ubuntu server安装nginx

以下都是ChatGPT的回答,发现可以用来写博客了!
有什么可以帮你的吗

ubuntu server安装nginx

以下是在Ubuntu Server上安装Nginx的步骤:

  1. 更新apt或aptitude的软件包索引:

    1
    sudo apt-get update
  2. 安装nginx:

    1
    sudo apt-get install nginx
  3. 启动nginx服务:

    1
    sudo systemctl start nginx
  4. 如果你想让nginx在开机时自启动,则可以运行以下命令:

    1
    sudo systemctl enable nginx

现在,你已经成功在Ubuntu Server上安装了Nginx。可以在浏览器中输入服务器的IP地址,查看Nginx的默认欢迎页面。

通过源码编译

如果你想通过源码编译安装Nginx,可以按照以下步骤操作:

  1. 首先要准备好必要的编译工具和依赖库,可以使用命令安装:

    1
    2
    sudo apt-get update
    sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
  2. 下载Nginx源码包:

    1
    2
    cd /usr/src
    sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz
  3. 解压源码包:

    1
    2
    sudo tar -zxvf nginx-1.18.0.tar.gz
    cd nginx-1.18.0
  4. 配置编译选项,这里示例配置路径为 /usr/local/nginx

    1
    sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module 
  5. 编译和安装:

    1
    sudo make && sudo make install
  6. 启动Nginx服务:

    1
    sudo /usr/local/nginx/sbin/nginx

现在,你已经成功通过源码编译安装了Nginx。可以在浏览器中输入服务器的IP地址,查看Nginx的默认欢迎页面。需要注意的是,源码安装的Nginx不会自动启动和自动更新,需要手动配置。

sysgemd配置自动启动

在Ubuntu Server上,可以使用systemd来配置Nginx的自动启动。

  1. 创建NGINX的systemd服务文件:

    1
    sudo nano /etc/systemd/system/nginx.service
  2. 复制以下内容,并将其粘贴到文件中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=The NGINX HTTP Server
    After=syslog.target network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    ExecStartPre=/usr/local/nginx/sbin/nginx -t
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
  3. 保存并关闭文件。

  4. 开启nginx systemd自启:

    1
    sudo systemctl enable nginx.service

现在,Nginx将自动在系统启动时启动,可以使用以下命令启动、停止和重新加载服务:

1
2
3
sudo systemctl start nginx     # 启动 Nginx
sudo systemctl stop nginx # 停止 Nginx
sudo systemctl reload nginx # 重新加载配置文件

希望以上信息能帮助你更好的使用和管理Nginx!

设置root目录

要设置Nginx的root目录,可以按照以下步骤操作:

  1. 打开Nginx的配置文件:

    1
    sudo nano /usr/local/nginx/conf/nginx.conf
  2. 找到并编辑server块中的root指令,将其设置为想要使用的目录。例如,将/usr/local/nginx/html修改为/var/www

    1
    2
    3
    4
    5
    6
    server {
    listen 80;
    server_name example.com;
    root /var/www; # 设置root目录
    ...
    }
  3. 保存并退出文件。

  4. 重新启动Nginx服务:

    1
    sudo /usr/local/nginx/sbin/nginx -s reload

现在,Nginx将使用新的根目录。需要注意的是,新目录需要具有正确的文件权限以及要提供给Nginx的静态文件。

配置域名代理

要配置Nginx作为域名代理,可以按照以下步骤操作:

  1. 打开Nginx的配置文件:

    1
    sudo nano /usr/local/nginx/conf/nginx.conf
  2. http块中添加以下内容,其中server_name应设置为要代理的域名,而proxy_pass应为将请求转发到的目标服务器的地址和端口:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    http {
    ...
    server {
    listen 80;
    server_name example.com; # 设置代理的域名
    location / {
    proxy_pass http://127.0.0.1:8080; # 将请求转发到目标服务器
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    ...
    }
  3. 保存并退出文件。

  4. 重新启动Nginx服务:

    1
    sudo /usr/local/nginx/sbin/nginx -s reload

现在,当访问设置为代理的域名时,Nginx将在内部将请求转发到目标服务器。请确保目标服务器已启动并监听正确的端口。

配置ssl证书

要为Nginx配置SSL证书,可以按照以下步骤操作:

  1. 获得证书和密钥文件。您可以从证书颁发机构(如Let’s Encrypt)或其他来源获得证书和密钥文件。

  2. 将证书和密钥文件上传到服务器。假设他们位于/etc/ssl/certs/etc/ssl/private目录中。如果您使用的是Let’s Encrypt,则可以使用certbot自动安装证书,并将证书和密钥文件放置在正确的位置。

  3. 打开Nginx的配置文件:

    1
    sudo nano /usr/local/nginx/conf/nginx.conf
  4. 找到以下行,并取消注释:

    1
    # ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;

    将其更改为:

    1
    ssl_protocols TLSv1.2 TLSv1.3;

    这将启用支持TLS1.2和TLS1.3的SSL协议。

  5. 在要使用SSL的server块中添加以下行:

    1
    2
    3
    4
    5
    6
    7
    server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/your_certificate.crt; # 替换为证书文件路径
    ssl_certificate_key /etc/ssl/private/your_private_key.pem; # 替换为私钥文件路径
    ...
    }

    your_certificate.crtyour_private_key.pem替换为您的证书和密钥文件的实际路径。

  6. 保存并退出文件。

  7. 重新启动Nginx服务:

    1
    sudo /usr/local/nginx/sbin/nginx -s reload

现在,Nginx将使用SSL证书来加密与客户端之间的通信。如果您的SSL证书是自签名的,则客户端可能会看到警告。如果您使用的是Let’s Encrypt证书,则这不应该是问题。

配置php解析

要为Nginx配置PHP解析,可以按照以下步骤操作:

  1. 安装PHP。您可以使用以下命令安装PHP及其相关扩展:

    1
    2
    sudo apt-get update
    sudo apt-get install php7.4-fpm php7.4-mysql

    这将安装PHP 7.4以及MySQL扩展。

  2. 打开Nginx的配置文件:

    1
    sudo nano /usr/local/nginx/conf/nginx.conf
  3. 在要使用PHP解析的server块中添加以下行:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    server {
    ...
    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000; # PHP-FPM监听的地址和端口
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    ...
    }

    注意将fastcgi_pass指令中的地址和端口设置为PHP-FPM监听的地址和端口。在这个例子中,我们假设PHP-FPM监听在本地地址的9000端口上。

  4. 保存并退出文件。

  5. 重新启动Nginx和PHP-FPM服务:

    1
    2
    sudo /usr/local/nginx/sbin/nginx -s reload
    sudo service php7.4-fpm restart

现在,您应该能够使用PHP来解析和执行.php文件。请注意,如果您使用的是不同版本的PHP,则需要相应地更改fastcgi_pass指令中的地址和端口。

通过php-fpm.sock解析

要通过php-fpm.sock启用PHP解析,您可以按照以下步骤操作:

  1. 确保PHP-FPM配置文件中使用了unix:/path/to/php-fpm.sock作为 PHP-FPM 监听地址。默认情况下,该值是注释掉的,需要自己去修改配置文件。您可以使用以下命令来编辑PHP-FPM配置文件:

    1
    sudo nano /etc/php/7.4/fpm/pool.d/www.conf

    将以下行:

    1
    ;listen = /run/php/php7.4-fpm.sock

    更改为:

    1
    listen = /run/php/php7.4-fpm.sock

    然后保存并退出文件。

  2. 在Nginx配置文件中,将fastcgi_pass指令的值更改为unix:/run/php/php7.4-fpm.sock(或者正确的PHP版本和相应的sock文件路径),如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    server {
    ...
    location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    ...
    }
  3. 保存并退出文件。

  4. 重新启动Nginx和PHP-FPM服务:

    1
    2
    sudo /usr/local/nginx/sbin/nginx -s reload
    sudo service php7.4-fpm restart

现在,Nginx将使用php-fpm.sock作为PHP-FPM的监听地址,并使用PHP-FPM解析和执行.php文件。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏